生成一个水波纹动画
以下是使用CSS3实现的水波纹动画示例:
HTML代码:
<div class="wave"></div>
CSS代码:
.wave {
position: relative;
width: 200px;
height: 200px;
background: #0099ff;
border-radius: 50%;
overflow: hidden;
}
.wave:before, .wave:after {
content: "";
position: absolute;
width: 400px;
height: 400px;
top: -100px;
left: -100px;
background: rgba(255, 255, 255, 0.5);
border-radius: 50%;
transform-origin: center center;
animation: wave 2s linear infinite;
}
.wave:after {
animation-delay: -1s;
}
@keyframes wave {
0% {
transform: scale(0.8);
opacity: 0;
}
50% {
transform: scale(1.2);
opacity: 1;
}
100% {
transform: scale(1.6);
opacity: 0;
}
}
解释说明:
- 使用一个div元素作为容器,设置宽高和背景色,同时设置圆角为50%实现圆形效果。
- 在容器内部创建两个伪元素:before和:after,宽高为400px,背景色为半透明白色,圆角同样设置为50%。
- 设置伪元素的位置为top:-100px和left:-100px,让其超出容器的范围。
- 设置伪元素的动画效果为wave,持续时间为2秒,线性变化,无限循环。
- 在伪元素中定义动画效果wave,设置三个关键帧,分别为0%、50%和100%。
- 在0%关键帧中,设置伪元素的初始尺寸为0.8倍,透明度为0。
- 在50%关键帧中,设置伪元素的尺寸为1.2倍,透明度为1。
- 在100%关键帧中,设置伪元素的尺寸为1.6倍,透明度为0。
- 为了让两个伪元素的动画效果错开,需要对后一个伪元素的动画延迟1秒。
原文地址: https://www.cveoy.top/t/topic/b8vD 著作权归作者所有。请勿转载和采集!