# CSS实现鼠标滑过图片闪光效果及图片循环闪动效果(类似QQ头像闪动效果)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
/*实现鼠标滑过图片闪光效果*/
img {
width: 800px;
height: 450px;
margin: 0 auto;
}
.img {
display: block;
position: relative;
width: 800px;
height: 450px;
margin: 0 auto;
}
.img:before {
content: "";
position: absolute;
width: 200px;
height: 100%;
top: 0;
left: -150px;
overflow: hidden;
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0)0, rgba(255, 255, 255, .2)50%, rgba(255, 255, 255, 0)100%);
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(50%, rgba(255, 255, 255, .2)), color-stop(100%, rgba(255, 255, 255, 0)));
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0)0, rgba(255, 255, 255, .2)50%, rgba(255, 255, 255, 0)100%);
background: -o-linear-gradient(left, rgba(255, 255, 255, 0)0, rgba(255, 255, 255, .2)50%, rgba(255, 255, 255, 0)100%);
-webkit-transform: skewX(-25deg);
-moz-transform: skewX(-25deg)
}
.img:hover:before {
left: 150%;
transition: left 1s ease 0s;
}
/*实现图片每两秒闪动一次的效果*/
@-webkit-keyframes twinkling {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.img {
-webkit-animation: twinkling 2s infinite ease-in-out;
}
</style>
</head>
<body>
<div>
<a href="#" class="img">
<img src="img/1.jpg" alt="风景" />
</a>
</div>
</body>
</html>
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
闪光效果原理:在需要闪光的图片前添加
before
属性;内容为空;宽为200px,高为100%,left:-150px,overflow:hiddden;background
属性设置为渐变;颜色看自己需要;transform-skewX(-25deg)
然后为before
的content
设置过渡动画:{left:150%,transiton:150px 1s ease 0s}
就可以了;图片闪动原理:定义两个状态,一种状态下透明度为 0%,另一种状态下透明度为 100%,无限次地在 1 秒内切换这两种状态,看起来就是闪烁了。