濡備綍浣跨敤CSS 瀹炵幇鍔ㄦ€佺嚎鏉?Loading 鍔ㄧ敾锛熶笅闈㈡湰绡囨枃绔犱粙缁嶄竴涓嬩娇鐢╟ss瀹炵幇鍔ㄦ€佸姬褰㈢嚎鏉¢暱鐭彉鍖栫殑Loading鍔ㄧ敾鐨?绉嶆柟娉曪紝甯屾湜瀵瑰ぇ瀹舵湁鎵€甯姪锛?/p>
鏈夌兢鍙嬮棶鎴戯紝浣跨敤 CSS 濡備綍瀹炵幇濡備笅 Loading 鏁堟灉锛?/p>
杩欐槸涓€涓潪甯告湁鎰忔€濈殑闂銆?/p>
鎴戜滑鐭ラ亾锛屼娇鐢?CSS锛屾垜浠彲浠ラ潪甯歌交鏉剧殑瀹炵幇杩欐牱涓€涓姩鐢绘晥鏋滐細
<div></div>
div { width: 100px; height: 100px; border-radius: 50%; border: 2px solid transparent; border-top: 2px solid #000; border-left: 2px solid #000; animation: rotate 3s infinite linear; } @keyframes rotate { 100% { transform: rotate(360deg); } }
鍔ㄧ敾濡備笅锛?/p>
涓庤姹傜殑绾挎潯 loading 鍔ㄧ敾鐩告瘮锛屼笂杩板姩鐢荤己灏戜簡姣旇緝鏍稿績鐨勪竴鐐瑰湪浜庯細
- 绾挎潯鍦ㄦ棆杞繍鍔ㄧ殑杩囩▼涓紝闀跨煭鏄細鍙戠敓鍙樺寲鐨?/strong>
鎵€浠ワ紝杩欓噷鐨勭殑闅剧偣涔熷氨杞彉涓轰簡锛屽浣曞姩鎬佺殑瀹炵幇寮у舰绾挎鐨勯暱鐭彉鍖栵紵瑙e喅浜嗚繖涓棶棰橈紝涔熷氨鍩烘湰涓婅В鍐充簡涓婅堪鐨勭嚎鏉″彉鎹?Loading 鍔ㄧ敾銆?/p>
鏈枃灏嗕粙缁?CSS 褰撲腑锛屽嚑绉嶆湁鎰忔€濈殑锛屽彲鑳藉彲浠ュ姩鎬佹敼鍙樺姬褰㈢嚎鏉¢暱鐭殑鏂瑰紡锛?/p>
鏂规硶涓€锛氫娇鐢ㄩ伄缃╁疄鐜?/h2>
绗竴绉嶆柟娉曪紝涔熸槸姣旇緝瀹规槗鎯冲埌鐨勬柟寮忥紝浣跨敤閬僵鐨勬柟寮忓疄鐜般€?/p>
鎴戜滑瀹炵幇涓や釜鍗婂渾绾挎潯锛屼竴涓槸瀹為檯鑳界湅鍒扮殑棰滆壊锛屽彟澶栦竴涓垯鏄?strong>鍜岃儗鏅壊鐩稿悓鐨?/strong>锛岀浉瀵规洿涓虹矖涓€鐐圭殑鍗婂渾绾挎潯锛屽綋涓ゆ潯绾挎潯杩愬姩鐨勯€熺巼涓嶄竴鑷存椂锛屾垜浠粠瑙嗚涓婏紝涔熷氨鑳界湅鍒板姩鎬佸彉鍖栫殑寮у舰绾挎潯銆?/p>
鐪嬬湅绀烘剰鍥撅紝涓€鐪嬪氨鎳傦細
鎴戜滑鎶婁笂杩扮孩鑹茬嚎鏉★紝鏇挎崲鎴愯儗鏅櫧鑹诧紝鏁翠綋鐨勫姩鐢绘晥鏋滃氨闈炲父鐨勭浉浼间簡锛屼吉浠g爜濡備笅锛?/p>
<div></div>
div { width: 200px; height: 200px; } div::before { position: absolute; content: ""; top: 0px; left: 0px; right: 0px; bottom: 0px; border-radius: 50%; border: 3px solid transparent; border-top: 3px solid #000; border-left: 3px solid #000; animation: rotate 3s infinite ease-out; } div::after { position: absolute; content: ""; top: -2px; left: -2px; right: -2px; bottom: -2px; border-radius: 50%; border: 7px solid transparent; border-bottom: 7px solid #fff; border-right: 7px solid #fff; animation: rotate 4s infinite ease-in-out; } @keyframes rotate { 100% { transform: rotate(0deg); } }
鏍稿績灏辨槸瀹炵幇涓ゆ潯鍗婂渾绾挎潯锛屼竴鏉¢粦鑹诧紝涓€鏉¤儗鏅壊锛屼袱娈电嚎鏉′互涓嶅悓鐨勯€熺巼杩愬姩锛堥€氳繃鍔ㄧ敾鏃堕棿鍙婄紦鍔ㄦ帶鍒讹級锛屾晥鏋滃涓嬶細
瀹屾暣鐨勪唬鐮佷綘鍙互鐚涘嚮 — CodePen Demo – Linear Loading
https://codepen.io/Chokcoco/pen/PvqYNJ
涓婅堪鏂规鏈€澶х殑 2 涓棶棰樺湪浜庯細
-
濡傛灉鑳屾櫙鑹蹭笉鏄函鑹诧紝浼氶湶棣?/p>
-
濡傛灉瑕佹眰鑳藉睍鐜扮殑绾挎闀垮害澶т簬鍗婁釜鍦嗭紝鏃犳硶瀹屾垚
鍩轰簬姝わ紝鎴戜滑鍙兘鍙﹁緹韫婂緞銆?/p>
鏂规硶浜岋細鍊熷姪 SVG 鐨?stroke-* 鑳藉姏
鍦ㄤ箣鍓嶉潪甯稿鐨勭瘒鏂囩珷涓紝閮芥湁璁插埌杩囧湪 CSS 閰嶅悎 SVG锛屾垜浠彲浠ュ疄鐜板悇绉嶇畝鍗曟垨澶嶆潅鐨勭嚎鏉″姩鐢伙紝鍍忔槸绠€鍗曠殑锛?/p>
鎴栬€呰嚜瀹氫箟澶嶆潅璺緞鐨勫鏉傜殑绾挎潯鍔ㄧ敾锛?/p>
> 瀵?CSS/SVG 瀹炵幇绾挎潯鍔ㄧ敾鎰熷叴瓒g殑锛屼絾鏄繕涓嶅お浜嗚В鐨勶紝鍙互鐪嬬湅鎴戠殑杩欑瘒鏂囩珷 — 銆怶eb鍔ㄧ敾銆慡VG 绾挎潯鍔ㄧ敾鍏ラ棬
鍦ㄨ繖閲岋紝鎴戜滑鍙渶瑕佷竴涓畝鍗曠殑 SVG 鏍囩 <circle>
锛岄厤鍚堝叾 CSS 鏍峰紡 stroke-dasharray
鍜?stroke-dashoffset
鍗冲彲杞绘澗瀹屾垚涓婅堪鏁堟灉锛?/p>
<svg class="circular" viewbox="25 25 50 50"> <circle class="path" cx="50" cy="50" r="20" fill="none" /> </svg>
.circular { width: 100px; height: 100px; animation: rotate 2s linear infinite; } .path { stroke-dasharray: 1, 200; stroke-dashoffset: 0; stroke: #000; animation: dash 1.5s ease-in-out infinite } @keyframes rotate { 100% { transform: rotate(360deg); } } @keyframes dash { 0% { stroke-dasharray: 1, 200; stroke-dashoffset: 0; } 50% { stroke-dasharray: 89, 200; stroke-dashoffset: -35px; } 100% { stroke-dasharray: 89, 200; stroke-dashoffset: -124px; } }
绠€鍗曡В閲婁笅锛?/p>
stroke
锛氱被姣?css 涓殑 border-color锛岀粰 svg 鍥惧舰璁惧畾杈规棰滆壊锛?/li>stroke-dasharray
锛氬€兼槸涓€缁勬暟缁勶紝娌℃暟閲忎笂闄愶紝姣忎釜鏁板瓧浜ゆ浛琛ㄧず鍒掔嚎涓庨棿闅旂殑瀹藉害;stroke-dashoffset
锛歞ash 妯″紡鍒拌矾寰勫紑濮嬬殑璺濈銆?/li>
鎴戜滑鍒╃敤 stroke-dasharray
灏嗗師鏈畬鏁寸殑绾挎潯鍒囧壊鎴愬娈碉紝鍋囪鏄?stroke-dasharray: 10, 10
琛ㄧず杩欐牱涓€涓浘褰細
绗竴涓?10 琛ㄧず绾挎鐨勯暱搴︼紝绗簩涓?10 琛ㄧず涓ゆ潯鍙鐨勭嚎娈典腑闂寸殑绌洪殭銆?/p>
鑰屽疄闄呬唬鐮佷腑鐨?stroke-dasharray: 1, 200
锛岃〃绀哄湪涓ゆ潯 1px
鐨勭嚎娈典腑闂达紝闂撮殧 200px
锛岀敱浜庣洿寰?40px
鐨勫渾鐨勫懆闀夸负 40 * 蟺 鈮?125.6px
锛屽皬浜?200
锛屾墍浠ュ疄闄呭鍥句笅锛屽彧鏈変竴涓偣锛?/p>
鍚岀悊锛?code>stroke-dasharray: 89, 200 琛ㄧず锛?/p>
閫氳繃 animation锛岃绾挎鍦ㄨ繖涓ょ鐘舵€佷箣闂磋ˉ闂村彉鎹€傝€?stroke-dashoffset
鐨勪綔鐢ㄥ垯鏄皢绾挎鍚戝墠鎺ㄧЩ锛岄厤鍚堢埗瀹瑰櫒鐨?transform: rotate()
鏃嬭浆鍔ㄧ敾锛屼娇寰楄瑙夋晥鏋滐紝绾挎鏄湪涓€鐩村湪鍚戜竴涓柟鍚戞棆杞€傜粨鏋滃涓嬶細
瀹屾暣鐨勪唬鐮佷綘鍙互鎴宠繖閲岋細CodePen Demo vps云服务器212; Linear loading
https://codepen.io/Chokcoco/pen/jOGQGJP?editors=1100
OK锛岃繕浼氭湁鍚屽璇翠簡锛屾垜涓嶆兂寮曞叆 SVG 鏍囩锛屾垜鍙兂浣跨敤绾?CSS 鏂规銆傝繖閲岋紝杩樻湁涓€绉嶅埄鐢?CSS @property 鐨勭函 CSS 鏂规銆?/p>
鏂规硶涓夛細浣跨敤 CSS @property 璁?conic-gradient 鍔ㄨ捣鏉?/h2>
杩欓噷鎴戜滑闇€瑕佸€熷姪 CSS @property 鐨勮兘鍔涳紝浣垮緱鏈潵鏃犳硶瀹炵幇鍔ㄧ敾鏁堟灉鐨勮鍚戞笎鍙橈紝鍔ㄨ捣鏉ャ€?/p>
姝e父鏉ヨ锛屾笎鍙樻槸鏃犳硶杩涜鍔ㄧ敾鏁堟灉鐨勶紝濡備笅鎵€绀猴細
<div></div>
.normal { width: 200px; height: 200px; border-radius: 50%; background: conic-gradient(yellowgreen, yellowgreen 25%, transparent 25%, transparent 100%); transition: background 300ms; &:hover { background: conic-gradient(yellowgreen, yellowgreen 60%, transparent 60.1%, transparent 100%); } }
灏嗕細寰楀埌杩欐牱涓€绉嶆晥鏋滐紝鐢变簬 conic-gradient
鏄笉鏀寔杩囨浮鍔ㄧ敾鐨勶紝寰楀埌鐨勬槸涓€甯у悜鍙﹀涓€甯х殑鐩存帴鍙樺寲锛?/p>
濂斤紝浣跨敤 CSS @property 鑷畾涔夊彉閲忔敼閫犱竴涓嬶細
@property --per { syntax: '<percentage>'; inherits: false; initial-value: 25%; } div { background: conic-gradient(yellowgreen, yellowgreen var(--per), transparent var(--per), transparent 100%); transition: --per 300ms linear; &:hover { --per: 60%; } }
鐪嬬湅鏀归€犲悗鐨勬晥鏋滐細
鍦ㄨ繖閲岋紝鎴戜滑鍙互璁╂笎鍙樺姩鎬佺殑鍔ㄨ捣鏉ワ紝璧嬩簣浜嗗姩鐢荤殑鑳藉姏銆?/p>
鎴戜滑鍙渶瑕佸啀寮曞叆 mask锛屽皢涓棿閮ㄥ垎瑁佸垏鎺夛紝鍗冲彲瀹炵幇涓婅堪绾挎潯 Loading 鍔ㄧ敾锛屼吉浠g爜濡備笅锛?/p>
<div></div>
@property --per { syntax: "<percentage>"; inherits: false; initial-value: 10%; } div { position: relative; width: 100px; height: 100px; border-radius: 50%; animation: rotate 11s infinite ease-in-out; &::before { content: ""; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 50%; background: conic-gradient(transparent, transparent var(--per), #fa7 var(--per), #fa7); mask: radial-gradient(transparent, transparent 47.5px, #000 48px, #000); animation: change 3s infinite cubic-bezier(0.57, 0.29, 0.49, 0.76); } } @keyframes change { 50% { transform: rotate(270deg); --per: 98%; } 100% { transform: rotate(720deg); } } @keyframes rotate { 100% { transform: rotate(360deg); filter: hue-rotate(360deg); } }
杩欓噷锛屾垜椤轰究鍔犱笂浜?filter: hue-rotate()
锛岃绾挎潯鍦ㄦ棆杞殑鍚屾椂锛岄鑹蹭篃璺熺潃鍙樺寲锛屾渶缁堟晥鏋滃涓嬶紝杩欐槸涓€涓函 CSS 瑙e喅鏂规锛?/p>
瀹屾暣鐨勪唬鐮佷綘鍙互鐚涘嚮杩欓噷锛歀inear Loading Animation
https://codepen.io/Chokcoco/pen/ZEXmJxP?editors=1100
鏈柟妗堢殑鍞竴闂鍦ㄤ簬锛屽綋鍓?CSS @property 鐨勫吋瀹规€х◢寰笉鏄偅涔堜箰瑙傘€傚綋鐒讹紝鏈潵鍙湡銆?/p>
鏈€鍚?/h2>
绠€鍗曟€荤粨涓€涓嬶紝鏈枃浠嬬粛浜?3 绉嶅疄鐜板姩鎬佸姬褰㈢嚎鏉¢暱鐭彉鍖栫殑 Loading 鍔ㄧ敾锛屽綋鐒讹紝瀹冧滑鍚勬湁浼樺姡锛屽疄闄呬娇鐢ㄧ殑鏃跺€欐牴鎹疄闄呮儏鍐靛叿浣撳彇鑸嶃€傛湁鐨勬椂鍊欙紝鍒囧浘涔熻涔熸槸鏇寸渷鏃堕棿鐨勪竴绉嶆柟寮忥細锛?/p>
濂戒簡锛屾湰鏂囧埌姝ょ粨鏉燂紝甯屾湜鏈枃瀵逛綘鏈夋墍甯姪 馃檪
锛堝涔犺棰戝垎浜細css瑙嗛鏁欑▼锛?/p>
鏈枃鏉ユ簮缃戠珯锛歩nfo110.com锛岃嫢渚垫潈锛岃鑱旂郴鍒犻櫎銆?/p>