纯CSS怎么实现水波纹的电池充电动画特效
本篇内容主要讲解“纯CSS怎么实现水波纹的电池充电动画特效”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“纯CSS怎么实现水波纹的电池充电动画特效”吧!
前置知识:
要想完成这个特效,就必须要知道一些前置的属性,简单介绍一下吧:
animation 、transform 和 filter 这三个就不多做介绍了,基本上所有的动画都会用到这两个属性。
box-shadow
box-shadow:阴影
用法:box-shadow: h-shadow v-shadow blur spread color inset;
h-shadow:必填的,水平阴影的位置,允许负值
v-shadow:必需的。垂直阴影的位置。允许负值
blur:模糊距离
spread:阴影的大小
color:阴影的颜色
inset:从外层的阴影(开始时)改变阴影内侧阴影
border-radius
border-radius:设置圆角
可设置四个值,与 margin
、padding
的使用方法一样
也就是每个半径的四个值的顺序是:左上角
,右上角
,右下角
,左下角
。
如果省略左下角,右上角是相同的。
如果省略右下角,左上角是相同的。
如果省略右上角,左上角是相同的。
linear-gradient()
linear-gradient():渐变,用于创建一个表示两种或多种颜色线性渐变的图片。
用法:background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
direction: 用角度值指定渐变的方向(或角度),制定方向
color...: 依次有什么颜色变为什么颜色
容器
我们设置两个 div ,一个座位底部的容器,上面弄个小盖子,主要通过border-radius
设置下周边的圆角,并且加入box-shadow
加入阴影,增强立体感
充电效果
这里可以使用定位布局,通过top
来控制水的位置,top
的值越大水越低,top
的值越小水越高
我们把水位设置为80%,同时通过linear-gradient() 来设置水的一个渐变色:
那么动画就很简单了,只需要控制 top
值就会造成水的上升,像这样
这时需要注意的点是:
最上方我们的容器设置了圆角,所以在动画到100%的时候,要和容器的圆角一样
水位在移动,为了增强立体感,可设置阴影,可以以有个递进的效果,所以颜色最好稍微变深一点,并且颜色最好偏近
变色还是通过:
filter: hue-rotate();
这个属性控制
.content{ //容器
border-radius: 15px 15px 5px 5px;
&::after{
position: absolute;
top: 80%;
background: linear-gradient(to bottom, #7abcff 0%, #00BCD4 44%, #2196F3 100%);
border-radius: 0px 0px 5px 5px;
box-shadow: 0 14px 28px rgba(33, 150, 243, 0), 0 10px 10px rgba(9, 188, 215, 0.08);
animation: change 10s linear infinite;
filter: hue-rotate(90deg);
}
}
@keyframes change {
30% {
box-shadow: 0 14px 28px rgba(0, 150, 136, 0.83), 0px 4px 10px rgba(8, 117, 134, 0.4);
}
50%{
filter: hue-rotate(60deg);
}
80% {
top: 20%;
border-radius: 0 0 5px 5px;
box-shadow: 0 14px 28px rgba(6, 136, 153, 0.2), 0 10px 10px rgba(12, 10, 112, 0.08);
}
100% {
top: 0%;
filter: hue-rotate(0deg);
border-radius: 15px 15px 5px 5px;
box-shadow: 0 14px 28px rgba(7, 93, 104, 0), 0 10px 10px rgba(31, 3, 68, 0.4);
}
}
水波纹特效
这个特效相信大家都见过,其思想就是在上面的大概位置上设置背景颜色,用相同的底色覆盖,
然后用到translate
这个属性,通过转化x
、y
值,然后通过不停的旋转角度,至于数值为啥是这个值,我也搞不清楚。。。有知道的小伙伴可以在评论区留言.
p{ //复盖
border-radius: 45% 47% 44% 42%;
transform: translate(-50%, 0);
animation: move 10s linear infinite;
}
@keyframes move {
100% {
transform: translate(-50%, -160px) rotate(720deg);
}
}
此时,我们发现这个效果并不太真实,进行多覆盖两个,改变旋转值和border-radius
的值来设置水面不重叠,但又有差距的效果
p{
&:nth-child(2){
border-radius: 38% 46% 43% 47%;
transform: translate(-50%, 0) rotate(-135deg);
}
&:nth-child(3){
border-radius: 42% 46% 37% 40%;
transform: translate(-50%, 0) rotate(135deg);
}
}
此时的效果就非常真实了
到此,相信大家对“纯CSS怎么实现水波纹的电池充电动画特效”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341