涟漪
实现效果
HTML代码
<!DOCTYPE html>
<head>
<link rel="stylesheet" href="demo.css">
</head>
<body>
<div class="ripple-bg">
<div class="ripple1"></div>
<div class="ripple2"></div>
<div class="ripple3"></div>
</div>
</body>
</html>
1. ripple-bg为波纹的中心点,该div元素不进行任何动画。
2. 这里用了三个div元素来实现多层涟漪的效果。
CSS代码
.ripple-bg {
width: 80px;
height: 80px;
border-radius: 50%;
background-color: rgb(0, 195, 255);
margin: 300px auto;
}
/* 共有样式 */
.ripple1, .ripple2, .ripple3{
width: 80px;
height: 80px;
border-radius: 50%;
background-color: rgb(0, 195, 255);
}
/* 单独样式 */
/* 设置位置以及动画延迟 */
.ripple1 {
animation: ripple-anim 3s ease-out 0s infinite;
}
.ripple2 {
position: relative;
top: -80px;
animation: ripple-anim 3s ease-out 1s infinite;
}
.ripple3 {
position: relative;
top: -160px;
animation: ripple-anim 3s ease-out 2s infinite;
}
/* 动画效果 */
@keyframes ripple-anim {
0% {
transform: scale(0.5, 0.5);
opacity: 1;
}
30% {
opacity: 1;
}
100% {
transform: scale(2, 2);
opacity: 0;
}
}
1. 类名为ripple1、ripple2和ripple3的div元素颜色应和父类元素相同;位置设置为relative,相对于父类元素进行调整,将三层涟漪的中心点与父类元素重合。
2. 为实现多层涟漪效果,ripple1、ripple2和ripple3的动画开始时间应不同,所以要设置延迟。
3. 在动画中,涟漪由小变大,在进行到100%时,要将透明度设置为0,涟漪消失。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。