css3 三角形_纯CSS3实现旋转风车

今天我们依然来做一个比较简单的CSS3动画—五彩风车随风旋转。这个动效和上一篇教程一样,仅使用CSS3完成。我们使用了一些常见的CSS3动画技巧,再加上传统CSS的三角形制作手法,就完成了风车随风旋转的效果:

dab4c83f9ae5238cbf898cc41f13bce3.png

前端代码

HTML代码:

        

CSS3代码:

#effect-windmill {  position: relative;  margin: auto;  margin-top: 80px;  width: 300px;  height: 450px;}#effect-windmill > .blade-container {  position: absolute;  display: flex;  flex-flow: column wrap;  width: 300px;  height: 300px;  overflow: hidden;  z-index: 20;  animation: wind 10s linear 3s infinite;  -webkit-animation: wind 10s linear 3s infinite;}#effect-windmill > .blade-container > .blade-item {  width: 0;  height: 0;}#effect-windmill > .blade-container > .blade-item:nth-child(1) {  border-right: 150px solid transparent;  border-bottom: 150px solid #e74c3c;}#effect-windmill > .blade-container > .blade-item:nth-child(2) {  border-left: 150px solid transparent;  border-bottom: 150px solid #e67e22;}#effect-windmill > .blade-container > .blade-item:nth-child(3) {  border-right: 150px solid transparent;  border-top: 150px solid #f1c40f;}#effect-windmill > .blade-container > .blade-item:nth-child(4) {  border-left: 150px solid transparent;  border-top: 150px solid #2ecc71;}#effect-windmill > .pole {  position: absolute;  margin: auto;  left: 0;  right: 0;  bottom: 0;  width: 5px;  height: 300px;  background-color: #3498db;  z-index: 10;}@keyframes wind {  from {    transform: rotate(0deg);    -webkit-transform: rotate(0deg);    -moz-transform: rotate(0deg);    -ms-transform: rotate(0deg);    -o-transform: rotate(0deg);  }  to {    transform: rotate(-3600deg);    -webkit-transform: rotate(-3600deg);    -moz-transform: rotate(-3600deg);    -ms-transform: rotate(-3600deg);    -o-transform: rotate(-3600deg);  }}学习Q-q-u-n: 784783012 ,分享学习的方法和需要注意的小细节

知识点提炼

  1. 风车的旋转效果使用了CSS3中的animate属性,然后配合keyframe改变风车叶片容器的transform属性达到旋转效果,请注意这里旋转的只是风车叶片的外围容器。
  2. 风车叶片使用了CSS3的flex布局,我们设置flex布局自动换行,这样只需要一组样式就能让四个叶片到达规定位置,省了很多代码。
  3. 我们给每个叶片单独添加样式时,使用了nth-child伪类选择器,这个选择器最大的好处是,不需要给每个叶片单独定制class,只需要根据自身序号写出样式即可。
  4. 传统css的三角形制作方法是设置一个宽度很大的border属性,以此来模拟三角形。这里的三角形也是这么做出来的,感兴趣的可以详细了解border制作三角形的方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值