在CSS中实现一个接一个的脉冲动画可以通过使用CSS动画和伪元素来实现。下面是一个实现红绿灯不断闪烁的示例:
HTML代码:
<div class="traffic-light"></div>
CSS代码:
.traffic-light {
width: 40px;
height: 120px;
background-color: black;
position: relative;
}
.traffic-light::before,
.traffic-light::after {
content: "";
width: 40px;
height: 40px;
border-radius: 50%;
position: absolute;
top: 10px;
left: 50%;
transform: translateX(-50%);
animation-duration: 1s;
animation-iteration-count: infinite;
}
.traffic-light::before {
background-color: red;
animation-name: pulse-red;
}
.traffic-light::after {
background-color: green;
animation-name: pulse-green;
animation-delay: 0.5s;
}
@keyframes pulse-red {
0% {
box-shadow: 0 0 0 0px red;
}
50% {
box-shadow: 0 0 0 20px red;
}
100% {
box-shadow: 0 0 0 0px red;
}
}
@keyframes pulse-green {
0% {
box-shadow: 0 0 0 0px green;
}
50% {
box-shadow: 0 0 0 20px green;
}
100% {
box-shadow: 0 0 0 0px green;
}
}
解释:
.traffic-light
,设置它的宽度、高度和背景色。::before
和 ::after
创建红灯和绿灯。animation-name
属性和 @keyframes
定义两个脉冲动画:pulse-red
和 pulse-green
。box-shadow
的值,来实现闪烁效果。animation-delay
属性设置绿灯的动画延迟时间,使得绿灯的动画在红灯结束后开始。这样就实现了一个红绿灯不断闪烁的效果。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云