下面是该特效的完整攻略,并附带两条示例说明。
CSS特效:一道闪光在图片上划过
效果展示
HTML结构和CSS样式
首先,需要在HTML中创建一个具有背景图片的div元素,然后使用CSS样式来实现该特效。
HTML:
<div class="container"></div>
CSS:
.container {
background-image: url('path/to/image.jpg');
background-size: cover;
width: 100%;
height: 100vh;
position: relative;
}
.container:before {
content: "";
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
z-index: 2;
animation: animate 2s linear infinite;
}
@keyframes animate {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
代码解释
让我们来逐行解释代码:
-
.container
元素设置了背景图片并填充了整个浏览器窗口的高度。 -
通过
:before
伪元素,创建了一个大小与父元素.container
相同的元素,用于实现特效的滑动动画效果。 -
background
属性是一个 CSS 渐变属性,用于在两个颜色之间创建平稳的过渡。这里使用了linear-gradient
渐变属性,并使用透明值来创建一个透明至白色至透明的效果。 -
z-index
属性可以将该元素放在其他元素前面。 -
animation
动画属性将特效设置为无限循环的2秒动画。animate
是动画名称,2s
是动画时间,linear
是动画的速度和infinite
则指定了动画次数,这里是无限循环的。 -
@keyframes
规则定义了动画的关键帧。 在这个案例中,动画从一个元素的左侧到右侧滑动。动画初始位置是 -100%(完全在元素外面),结束位置是 100%(还是完全在元素外面)。通过改变transform
属性的值,实现元素的横向移动。
示例1
下面是一个完整的示例演示如何将该特效部署到你的网站上:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS特效:一道闪光在图片上划过</title>
<style>
.container {
background-image: url('https://i.imgur.com/9JnC8xv.jpg');
background-size: cover;
width: 100%;
height: 100vh;
position: relative;
}
.container:before {
content: "";
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
z-index: 2;
animation: animate 2s linear infinite;
}
@keyframes animate {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
</style>
</head>
<body>
<div class="container"></div>
</body>
</html>
示例2
下面的示例演示了如何在图片上使用该效果。在这个案例中,你需要将CSS样式应用于img元素而不是div元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS特效:一道闪光在图片上划过</title>
<style>
.container {
width: 100%;
height: 100vh;
position: relative;
}
.container img {
width: 100%;
height: auto;
object-fit: cover;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
.container:before {
content: "";
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
z-index: 2;
animation: animate 2s linear infinite;
}
@keyframes animate {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
</style>
</head>
<body>
<div class="container">
<img src="https://i.imgur.com/9JnC8xv.jpg" alt="mountain">
</div>
</body>
</html>
希望这个攻略可以对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:css特效 一道闪光在图片上划过代码 - Python技术站