以前图片闪光划过都是用 Fireworks 做出GIF动态图片挂在网页上,没想到现在CSS已经强大到直接用代码显示了。在网上看到这么一个图片效果,当鼠标移上去的时候,会有一道闪光在图片上划过,效果挺酷炫的。于是把这个效果再实现一下。
HTML代码:
1 2 3 4 | <p class="overimg"> <a><img src="http://img.caibaojian.com/uploads/2014/02/080913ctV.jpg" alt="使用CSS3线性渐变实现图片闪光划过效果"></a> <i class="light"></i> </p> |
CSS代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | .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; } |
演示:http://jsfiddle.net/t1zk7n94/1/
大体思想是,设计一个透明层i,skewx在X轴上做了负25度的变形,背景颜色用的是CSS3的线性渐变linear-gradient,然后hover的时候,设置0.5s的动画时间。
同时在 i 层使用 cursor:pointer,如果不设置这个的话,需要等透明层动画之后才能看得到 pointer 指针。
打开 F12 调试来看会更加清楚。
Reference: http://caibaojian.com/css3-linear-gradient-skewx.html