柚子快報(bào)激活碼778899分享:前端 CSS 邊框動(dòng)畫(huà)
柚子快報(bào)激活碼778899分享:前端 CSS 邊框動(dòng)畫(huà)
先自我介紹一下,小編浙江大學(xué)畢業(yè),去過(guò)華為、字節(jié)跳動(dòng)等大廠,目前阿里P7
深知大多數(shù)程序員,想要提升技能,往往是自己摸索成長(zhǎng),但自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年最新Golang全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,涵蓋了95%以上Go語(yǔ)言開(kāi)發(fā)知識(shí)點(diǎn),真正體系化!
由于文件比較多,這里只是將部分目錄截圖出來(lái),全套包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、大綱路線、講解視頻,并且后續(xù)會(huì)持續(xù)更新
如果你需要這些資料,可以添加V獲?。簐ip1024b (備注go)
正文
CodePen Demo – dashed border animation
其實(shí)由于背景和邊框的特殊關(guān)系,使用 border 的時(shí)候,通過(guò)修改 background-position 也是可以解決的,就是比較繞。關(guān)于背景和邊框的填充關(guān)系,可以看這篇文章:條紋邊框的多種實(shí)現(xiàn)方式
漸變的其他妙用
利用漸變,不僅僅只是能完成上述的效果。
我們繼續(xù)深挖漸變,利用漸變實(shí)現(xiàn)這樣一個(gè)背景:
div { position: relative;
&::after { content: ‘’; position: absolute; left: -50%; top: -50%; width: 200%; height: 200%; background-repeat: no-repeat; background-size: 50% 50%, 50% 50%; background-position: 0 0, 100% 0, 100% 100%, 0 100%; background-image: linear-gradient(#399953, #399953), linear-gradient(#fbb300, #fbb300), linear-gradient(#d53e33, #d53e33), linear-gradient(#377af5, #377af5); } } 復(fù)制代碼
注意,這里運(yùn)用了元素的偽元素生成的這個(gè)圖形,并且,寬高都是父元素的 200%,超出則 overflow: hidden。
接下來(lái),給它加上旋轉(zhuǎn):
div { animation: rotate 4s linear infinite; }
@keyframes rotate { 100% { transform: rotate(1turn); } } 復(fù)制代碼
看看效果:
最后,再利用一個(gè)偽元素,將中間遮罩起來(lái),一個(gè) Nice 的邊框動(dòng)畫(huà)就出來(lái)了 (動(dòng)畫(huà)會(huì)出現(xiàn)半透明元素,方便示意看懂原理):
上述 Demo 完整代碼如下,這個(gè)效果我最早見(jiàn)于這位作者 – Jesse B
CodePen Demo – gradient border animation
改變漸變的顏色
掌握了上述的基本技巧之后,我們可以再對(duì)漸變的顏色做一些調(diào)整,我們將 4 種顏色變成 1 種顏色:
div::after { content: ‘’; position: absolute; left: -50%; top: -50%; width: 200%; height: 200%; background-color: #fff; background-repeat: no-repeat; background-size: 50% 50%; background-position: 0 0; background-image: linear-gradient(#399953, #399953); } 復(fù)制代碼
得到這樣一個(gè)圖形:
同樣的,讓它旋轉(zhuǎn)一起,一個(gè)單色追逐的邊框動(dòng)畫(huà)就出來(lái)了:
CodePen Demo – gradient border animation 2
Wow,很不錯(cuò)的樣子。不過(guò)如果是單線條,有個(gè)很明顯的缺陷,就是邊框的末尾是一個(gè)小三角而不是垂直的,可能有些場(chǎng)景不適用或者 PM 接受不了。
那有沒(méi)有什么辦法能夠消除掉這些小三角呢?有的,在下文中我們?cè)俳榻B一種方法,利用 clip-path ,消除掉這些小三角。
conic-gradient 的妙用
再介紹 clip-path 之前,先講講角向漸變。
上述主要用到了的是線性漸變 linear-gradient 。我們使用角向漸變 conic-gradient 其實(shí)完全也可以實(shí)現(xiàn)一模一樣的效果。
我們?cè)囍褂?conic-gradient 也實(shí)現(xiàn)一次,這次換一種暗黑風(fēng)格。核心代碼如下:
.conic { position: relative;
&::before { content: ‘’; position: absolute; left: -50%; top: -50%; width: 200%; height: 200%; background: conic-gradient(transparent, rgba(168, 239, 255, 1), transparent 30%); animation: rotate 4s linear infinite; } } @keyframes rotate { 100% { transform: rotate(1turn); } } 復(fù)制代碼
效果圖和示意圖如下,旋轉(zhuǎn)一個(gè)部分角向漸變的圖形,中間的部分使用另外一個(gè)偽元素進(jìn)行遮罩,只漏出線條部分即可:
CodePen Demo – Rotating border 3
clip-path 的妙用
又是老朋友 clip-path,有意思的事情它總不會(huì)缺席。
clip-path 本身是可以進(jìn)行坐標(biāo)點(diǎn)的動(dòng)畫(huà)的,從一個(gè)裁剪形狀變換到另外一個(gè)裁剪形狀。
利用這個(gè)特點(diǎn),我們可以巧妙的實(shí)現(xiàn)這樣一種 border 跟隨效果。偽代碼如下:
div { position: relative;
&::before { content: “”; position: absolute; top: 0; left: 0; right: 0; bottom: 0; border: 2px solid gold; animation: clippath 3s infinite linear; } }
@keyframes clippath { 0%, 100% { clip-path: inset(0 0 95% 0); } 25% { clip-path: inset(0 95% 0 0); } 50% { clip-path: inset(95% 0 0 0); } 75% { clip-path: inset(0 0 0 95%); } } 復(fù)制代碼
效果圖與示意圖一起:
CodePen - clip-path border animation
這里,因?yàn)闀?huì)裁剪元素,借用偽元素作為背景進(jìn)行裁剪并動(dòng)畫(huà)即可,使用 clip-path 的優(yōu)點(diǎn)了,切割出來(lái)的邊框不會(huì)產(chǎn)生小三角。同時(shí),這種方法,也是支持圓角 border-radius 的。
如果我們把另外一個(gè)偽元素也用上,實(shí)際實(shí)現(xiàn)一個(gè)按鈕樣式,可以得到這樣的效果:
CodePen - clip-path border animation 2
overflow 的妙用
下面這個(gè)技巧利用 overflow 實(shí)現(xiàn)。實(shí)現(xiàn)這樣一個(gè)邊框動(dòng)畫(huà):
為何說(shuō)是利用 overflow 實(shí)現(xiàn)?
貼個(gè)示意圖:
CodePen Demo – 巧用overflow及transform實(shí)現(xiàn)線條hover效果
兩個(gè)核心點(diǎn):
我們利用 overflow: hidden,把原本在容器外的一整個(gè)元素隱藏了起來(lái)利用了 transform-origin,控制了元素的旋轉(zhuǎn)中心
發(fā)現(xiàn)沒(méi),其實(shí)幾乎大部分的有意思的 CSS 效果,都是運(yùn)用了類似技巧:
簡(jiǎn)單的說(shuō)就是,我們看到的動(dòng)畫(huà)只是原本現(xiàn)象的一小部分,通過(guò)特定的裁剪、透明度的變化、遮罩等,讓我們最后只看到了原本現(xiàn)象的一部分。
border-image 的妙用
利用 border-image,我們也可以實(shí)現(xiàn)一些有意思的邊框動(dòng)畫(huà)。關(guān)于 border-image,有一篇非常好的講解文章 – border-image 的正確用法,本文不對(duì)基本定義做過(guò)多的講解。
如果我們有這樣一張圖:
便可以利用 border-image-slice 及 border-image-repeat 的特性,得到類似的邊框圖案:
div { width: 200px; height: 120px; border: 24px solid; border-image: url(image-url); border-image-slice: 32; border-image-repeat: round; } 復(fù)制代碼
在這個(gè)基礎(chǔ)上,可以隨便改變?cè)氐母邔挘绱吮隳軘U(kuò)展到任意大小的容器邊框中:
CodePen Demo – border-image Demo
接著,在這篇文章 – How to Animate a SVG with border-image 中,還講解了一種利用 border-image 的邊框動(dòng)畫(huà),非常的酷炫。
與上面例子不一樣的是,我們只需要讓我們的圖案,動(dòng)起來(lái),就是我們需要這樣一個(gè)背景圖(掘金不支持 SVG 動(dòng)圖,原圖地址):
那么,我們也就能得到運(yùn)動(dòng)的邊框圖,代碼完全一樣,但是,邊框是運(yùn)動(dòng)的:
CodePen Demo – Dancing Skull Border
border-image 使用漸變
border-image 除了貼圖引用 url 之外,也是可以直接填充顏色或者是漸變的。
之前也有一篇關(guān)于 border-image 的文章 – 巧妙實(shí)現(xiàn)帶圓角的漸變邊框
我們可以利用 border-image + filter + clip-path 實(shí)現(xiàn)漸變變換的圓角邊框:
.border-image-clip-path { width: 200px; height: 100px; border: 10px solid; border-image: linear-gradient(45deg, gold, deeppink) 1; clip-path: inset(0px round 10px); animation: huerotate 6s infinite linear; filter: hue-rotate(360deg); }
@keyframes huerotate { 0% { filter: hue-rotate(0deg); } 100% {
網(wǎng)上學(xué)習(xí)資料一大堆,但如果學(xué)到的知識(shí)不成體系,遇到問(wèn)題時(shí)只是淺嘗輒止,不再深入研究,那么很難做到真正的技術(shù)提升。
需要這份系統(tǒng)化的資料的朋友,可以添加V獲?。簐ip1024b (備注Go)
一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)!不論你是正從事IT行業(yè)的老鳥(niǎo)或是對(duì)IT行業(yè)感興趣的新人,都?xì)g迎加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場(chǎng)吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長(zhǎng)! uerotate 6s infinite linear; filter: hue-rotate(360deg); }
@keyframes huerotate { 0% { filter: hue-rotate(0deg); } 100% {
網(wǎng)上學(xué)習(xí)資料一大堆,但如果學(xué)到的知識(shí)不成體系,遇到問(wèn)題時(shí)只是淺嘗輒止,不再深入研究,那么很難做到真正的技術(shù)提升。
需要這份系統(tǒng)化的資料的朋友,可以添加V獲取:vip1024b (備注Go) [外鏈圖片轉(zhuǎn)存中…(img-8xUZCIno-1713294252627)]
一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)!不論你是正從事IT行業(yè)的老鳥(niǎo)或是對(duì)IT行業(yè)感興趣的新人,都?xì)g迎加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場(chǎng)吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長(zhǎng)!
柚子快報(bào)激活碼778899分享:前端 CSS 邊框動(dòng)畫(huà)
相關(guān)文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。