在百度音樂 http://music.baidu.com/ 看到這麼一個圖片效果,當鼠標移上去的時候,會有一道閃光在圖片上劃過,效果挺酷炫的。因而把這個效果再實現一下:css
這個 css3 的效果怎麼實現呢?html
html 設計成這樣:前端
<p class="overimg"> <a><img src="http://img.caibaojian.com/uploads/2014/02/080913ctV.jpg" alt="使用CSS3線性漸變實現圖片閃光劃過效果"></a> <i class="light"></i> </p>
CSS 爲:css3
.overimg { position: relative; display: block; /* overflow: hidden; */ -webkit-box-shadow: 0 0 10px #FFF; box-shadow: 0 0 10px #FFF; /* overflow: hidden; */ } .light { cursor: pointer; position: absolute; left: -180px; top: 0; width: 180px; height: 90px; background-image: -webkit-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0)); background-image: -moz-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0)); background-image: -o-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0)); background-image: -ms-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0)); background-image: linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0)); -webkit-transform: skewx(-25deg); -moz-transform: skewx(-25deg); -o-transform: skewx(-25deg); -ms-transform: skewx(-25deg); transform: skewx(-25deg); } .overimg:hover .light { left: 180px; -webkit-transition: 0.5s; -moz-transition: 0.5s; -o-transition: 0.5s; -ms-transition: 0.5s; transition: 0.5s; }
大致思想是,設計一個透明層i,skewx在X軸上作了負25度的變形,背景顏色用的是CSS3的線性漸變linear-gradient,而後hover的時候,設置0.5s的動畫時間。web
同時在 i 層使用 cursor:pointer,若是不設置這個的話,須要等透明層動畫以後才能看獲得 pointer 指針。動畫
打開 F12 調試來看會更加清楚。spa