当前位置: 首页 > Web前端 > HTML

纯CSS实现-简单的风车动画

时间:2023-03-28 00:03:56 HTML

大家好,我是前端开发小面,很高兴在这里分享文章,今天就来说说简单风车动画的实现以及transform-origin动画定位的使用,纯css实现+css3动画效果,定位和布局需要熟悉。下面听我详细说说~代码介绍其实实现风车动画并不难。首先,当你看到这个动画时,不要担心。让我们看看它是由哪些部分组成的。拆分一下,风车由4片风车叶子+风车组成风车的叶子由四个三角形组成。先画一个三角形,复制粘贴三个相同的。为了更好地区分它们,给不同的三角形加上不同的背景颜色,然后将每个风车旋转不同的角度,一个设置是旋转30度,一个是一样的,每个加90度,然后通过定位布局把其他三角点放在一起,风车的形状就出来了,然后画支架就是一个矩形很简单,然后在风车中间画一个小圆圈,用来挡住和固定风车的叶子。绘制三角形:---边界的边设置一个等边三角形。

.leaves{宽度:0;高度:0;左边框:50px实心透明;border-right:50pxsolidtransparent;border-bottom:40pxsolid#C73736;}复制4个三角形-为每个三角形添加颜色
.leaves2{border-bottom-color:#59BFED;}.leaves3{border-bottom-color:#DA7087;}.leaves4{border-bottom-color:#56D699;}定位并旋转三角形,添加如下:.leaves{width:0;高度:0;左边框:50px实心透明;border-right:50pxsolidtransparent;border-bottom:40pxsolid#C73736;位置:绝对;左:0;顶部:0;}.leaves1{变换:旋转(30度);}.leaves2{边框底部颜色:#59BFED;变换:旋转(120度);左:76px;顶部:9px;}。leaves3{border-bottom-color:#DA7087;变换:旋转(210度);左:67px;顶部:84px;}.leaves4{border-bottom-color:#56D699;变换:旋转(300度);左:-8px;top:75px;}这样就完成了一大半,我们再画一个括号,加上定位??.round{width:20px;高度:20px;边界半径:50%;背景:#FC899B;边框:2px实心#333;位置:绝对;左:72px;顶部:52px;z-index:2;}.??stick{宽度:4px;高度:160px;背景:#FC899B;绝对;左:80px;top:60px;}添加动画效果:.leaves-box{transform-origin:80px60px;动画:wave.8slinearinfinite;}@keyframeswave{0%{transform:rotate(0deg);}100%{变换:旋转(360deg);}}最终效果:如果上面的动画没有设置transform-origin:80px60px;默认会从原点00开始旋转,这显然不是我们想要的效果,动画的支点在80px60px,从支架的定位可以看出,所以设置transform-origin:80px当前叶父级为60px;动画将围绕它旋转最后代码:??/*风车*/.windmill{margin:100px0;位置:相对;}.leaves-box{位置:绝对;}.leaves{宽度:0;高度:0;左边框:50px实心透明;border-right:50pxsolidtransparent;border-bottom:40pxsolid#C73736;位置:绝对;左:0;顶部:0;}.leaves1{变换:旋转(30度);}.leaves2{边框底部颜色:#59BFED;变换:旋转(120度);左:76px;顶部:9px;}.leaves3{border-bottom-color:#DA7087;变换:旋转(210度);左:67像素;顶部:84px;}.leaves4{border-bottom-color:#56D699;变换:旋转(300度);左:-8px;顶部:75px;}.round{宽度:20px;高度:20px;边界半径:50%;背景:#FC899B;边框:2px实心#333;位置:绝对;左:72px;顶部:52px;z-index:2;}.??stick{宽度:4px;高度:160px;;边框:2px实心;位置:绝对;左:80px;top:60px;}/*风车旋转动画*/.leaves-box{transform-origin:80px60px;动画:wave.8slinearinfinite;}@keyframeswave{0%{transform:rotate(0deg);}100%{变换:旋转(360deg);}}总结本文介绍了风车动画的实现,利用css3的animation动画属性和transform-origin属性的定位布局,最终完成了风车动画的制作以上就是内容,感谢大家观看,期待你的点赞和关注,感谢阅读~