# 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
  1. 闪光效果原理:在需要闪光的图片前添加 before 属性;内容为空;宽为200px,高为100%,left:-150px,overflow:hiddden;background 属性设置为渐变;颜色看自己需要;transform-skewX(-25deg) 然后为 beforecontent 设置过渡动画:{left:150%,transiton:150px 1s ease 0s} 就可以了;

  2. 图片闪动原理:定义两个状态,一种状态下透明度为 0%,另一种状态下透明度为 100%,无限次地在 1 秒内切换这两种状态,看起来就是闪烁了。

Last Updated: 4/18/2020, 11:06:18 PM