本文介紹的是一個使用偽元素來實現邊框逐漸發光的代碼,主要用到scale和opacity這兩個屬性。下面來看看詳細的介紹:
效果圖如下:
HTML代碼:
<div class="light"> <img src="http://tva2.sinaimg.cn/crop.0.0.180.180.180/6830a53bjw8f2qo4xzc2zj20500500t0.jpg"/> <div class="light-inner"> <p>前端開發博客</p> <p>關注前端開發</p> </div> </div>
CSS代碼:
.light{ background: #fff; width: 180px; height: 180px; margin: 100px auto; position: relative; text-align: center; color: #333; transform:translate3d(0,0,0); } .light-inner{ padding: 60px 30px 0; pointer-events: none; position: absolute; left: 0; top: 0; bottom: 0; right: 0; text-align: center; transition: background 0.35s; backface-visibility: hidden; } .light-inner:before, .light-inner:after{ display: block; content: ""; position: absolute; left: 30px; top: 30px; right: 30px; bottom: 30px; border: 1px solid #fff; opacity: 0; transition: opacity 0.35s, transform 0.35s; } .light-inner:before{ border-left: 0; border-right: 0; transform:scaleX(0,1); } .light-inner:after{ border-top: 0; border-bottom: 0; transform: scaleY(1,0); } .light:hover .light-inner{ background: #458fd2 } .light:hover .light-inner:before, .light:hover .light-inner:after{ opacity: 1; transform: scale3d(1,1,1); } .light-inner p{ transition: opacity .35s, transform 0.35s; transform: translate3d(0,20px,0); color: #fff; opacity: 0; line-height: 30px; } .light:hover .light-inner p{ transform: translate3d(0,0,0); opacity: 1; }
實現步驟:
發光的方格,主要是通過.light-inner的偽元素:before和:after來實現
上下的邊框是從中間往兩邊逐漸展開:scaleX(0)到scaleX(1)
左右的邊框是從中間往上下兩邊展開:scaleY(0)到scaleY(1)
形成了一個四方形從中間向邊角逐漸發光的效果:opacity:0到opacity:1。
其它就沒什么技巧了。
scale介紹
scale(<number>[, <number>]):指定對象的2D scale(2D縮放)。第一個參數對應X軸,第二個參數對應Y軸。如果第二個參數未提供,則默認取第一個參數的值
scaleX(<number>):指定對象X軸的(水平方向)縮放
scaleY(<number>):指定對象Y軸的(垂直方向)縮放
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對的支持。
【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。