纯DOM+CSS3实现简单的小风车动画


Posted in HTML / CSS onSeptember 27, 2016

用CSS3实现了一个小风车的效果,转转转,挺简单。

效果

纯DOM+CSS3实现简单的小风车动画

代码

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3.   
  4. <head>  
  5.     <meta charset="UTF-8">  
  6.     <title>小风车-转啊转</title>  
  7.     <style type="text/css">  
  8.     html {   
  9.         font-size: 10px;   
  10.     }   
  11.   
  12.     html * {   
  13.         -webkit-box-sizing: border-box;   
  14.                 box-sizing: border-box;   
  15.     }   
  16.   
  17.     .windmill {   
  18.         width: 25rem;   
  19.         min-height: 30rem;   
  20.         height: auto;   
  21.         margin: 3rem auto;   
  22.         display: -webkit-box;   
  23.         display: -webkit-flex;   
  24.         display: -ms-flexbox;   
  25.         display: flex;   
  26.         -webkit-box-orient: vertical;   
  27.         -webkit-box-direction: normal;   
  28.         -webkit-flex-direction: column;   
  29.             -ms-flex-direction: column;   
  30.                 flex-direction: column;   
  31.         -webkit-box-pack: start;   
  32.         -webkit-justify-content: flex-start;   
  33.             -ms-flex-pack: start;   
  34.                 justify-content: flex-start;   
  35.         -webkit-box-align: center;   
  36.         -webkit-align-items: center;   
  37.             -ms-flex-align: center;   
  38.                 align-items: center;   
  39.     }   
  40.     /* 头部 */   
  41.   
  42.     .windmill-head {   
  43.         height: 20rem;   
  44.         width: 20rem;   
  45.         display: -webkit-box;   
  46.         display: -webkit-flex;   
  47.         display: -ms-flexbox;   
  48.         display: flex;   
  49.         -webkit-box-orient: horizontal;   
  50.         -webkit-box-direction: normal;   
  51.         -webkit-flex-direction: row;   
  52.             -ms-flex-direction: row;   
  53.                 flex-direction: row;   
  54.         -webkit-flex-wrap: wrap;   
  55.             -ms-flex-wrap: wrap;   
  56.                 flex-wrap: wrap;   
  57.         -webkit-justify-content: space-around;   
  58.             -ms-flex-pack: distribute;   
  59.                 justify-content: space-around;   
  60.         -webkit-align-content: space-around;   
  61.             -ms-flex-line-pack: distribute;   
  62.                 align-content: space-around;   
  63.         -webkit-transform: translateZ(0);   
  64.                 transform: translateZ(0);   
  65.         -webkit-animation: rotate-windmill 1s linear infinite;   
  66.                 animation: rotate-windmill 1s linear infinite;   
  67.         border-radius: 50%;   
  68.         border: 0.1rem solid #DBE526;   
  69.         -webkit-transition: border-radius 2s linear;   
  70.         transition: border-radius 2s linear;   
  71.     }   
  72.     /* 两片叶子的包裹层 */   
  73.   
  74.     .wrapper {   
  75.         display: -webkit-box;   
  76.         display: -webkit-flex;   
  77.         display: -ms-flexbox;   
  78.         display: flex;   
  79.         -webkit-box-orient: vertical;   
  80.         -webkit-box-direction: normal;   
  81.         -webkit-flex-direction: column;   
  82.             -ms-flex-direction: column;   
  83.                 flex-direction: column;   
  84.         -webkit-flex-wrap: wrap;   
  85.             -ms-flex-wrap: wrap;   
  86.                 flex-wrap: wrap;   
  87.         -webkit-box-pack: justify;   
  88.         -webkit-justify-content: space-between;   
  89.             -ms-flex-pack: justify;   
  90.                 justify-content: space-between;   
  91.         height: 135%;   
  92.         width: 50%;   
  93.         -webkit-box-align: center;   
  94.         -webkit-align-items: center;   
  95.             -ms-flex-align: center;   
  96.                 align-items: center;   
  97.     }   
  98.     /* 包裹层对称 */   
  99.   
  100.     .wrapper1 {   
  101.         -webkit-transform: rotate(-45deg) translate(5rem);   
  102.                 transform: rotate(-45deg) translate(5rem);   
  103.         -webkit-transform-origin: right center;   
  104.                 transform-origin: right center;   
  105.     }   
  106.   
  107.     .wrapper2 {   
  108.         -webkit-transform: rotate(45deg) translate(-5rem);   
  109.                 transform: rotate(45deg) translate(-5rem);   
  110.         -webkit-transform-origin: left center;   
  111.                 transform-origin: left center;   
  112.     }   
  113.     /* 扇叶的形状及底色 */   
  114.   
  115.     .leaf {   
  116.         height: 13rem;   
  117.         width: 5rem;   
  118.         border-radius: 5rem/ 5rem 5rem 20rem 20rem;   
  119.         -webkit-box-shadow: 0.1rem 0.1rem 1rem rgba(64, 56, 56, .35) inset, 0.2rem 0.2rem 0.05rem rgba(0, 0, 0, .65);   
  120.                 box-shadow: 0.1rem 0.1rem 1rem rgba(64, 56, 56, .35) inset, 0.2rem 0.2rem 0.05rem rgba(0, 0, 0, .65);   
  121.     }   
  122.   
  123.     .leaf1 {   
  124.         border: 0.05rem solid #D1A23A;   
  125.         -webkit-transform: rotate(0deg) translate(0);   
  126.                 transform: rotate(0deg) translate(0);   
  127.         background-color: rgba(230, 0, 100, 5);   
  128.         background: -webkit-gradient(linear, left top, left bottom, from(#D02CE4), to(#f5f5f5));   
  129.         background: -webkit-linear-gradient(top, #D02CE4, #f5f5f5);   
  130.         background: linear-gradient(180deg, #D02CE4, #f5f5f5);   
  131.         -webkit-transition: background 2s linear;   
  132.         transition: background 2s linear;   
  133.     }   
  134.   
  135.     .leaf2 {   
  136.         border: 0.05rem solid #49D13A;   
  137.         background-color: rgba(230, 0, 150, 5);   
  138.         -webkit-transform: rotate(-180deg) translate(0);   
  139.                 transform: rotate(-180deg) translate(0);   
  140.         background: -webkit-gradient(linear, left top, left bottom, from(#B91717), to(#f5f5f5));   
  141.         background: -webkit-linear-gradient(top, #B91717, #f5f5f5);   
  142.         background: linear-gradient(180deg, #B91717, #f5f5f5);   
  143.         -webkit-transition: background 2s linear 2s;   
  144.         transition: background 2s linear 2s;   
  145.     }   
  146.   
  147.     .leaf3 {   
  148.         border: 0.05rem solid #C6079D;   
  149.         background-color: rgba(130, 0, 100, 5);   
  150.         -webkit-transform: rotate(0deg) translate(0);   
  151.                 transform: rotate(0deg) translate(0);   
  152.         background: -webkit-gradient(linear, left top, left bottom, from(#1CBA9F), to(#f5f5f5));   
  153.         background: -webkit-linear-gradient(top, #1CBA9F, #f5f5f5);   
  154.         background: linear-gradient(180deg, #1CBA9F, #f5f5f5);   
  155.         -webkit-transition: background 2s linear;   
  156.         transition: background 2s linear;   
  157.         -webkit-transition: background 2s linear 4s;   
  158.         transition: background 2s linear 4s;   
  159.     }   
  160.   
  161.     .leaf4 {   
  162.         border: 0.05rem solid #3A5FD1;   
  163.         background-color: rgba(230, 100, 100, 5);   
  164.         -webkit-transform: rotate(-180deg) translate(0);   
  165.                 transform: rotate(-180deg) translate(0);   
  166.         background: -webkit-gradient(linear, left top, left bottom, from(#335642), to(#f5f5f5));   
  167.         background: -webkit-linear-gradient(top, #335642, #f5f5f5);   
  168.         background: linear-gradient(180deg, #335642, #f5f5f5);   
  169.         -webkit-transition: background 2s linear 6s;   
  170.         transition: background 2s linear 6s;   
  171.     }   
  172.     /* 尾部 */   
  173.   
  174.     .windmill-pillar {   
  175.         -webkit-transform: translateZ(0);   
  176.                 transform: translateZ(0);   
  177.         width: 3rem;   
  178.         height: 20rem;   
  179.         background: #FFF;   
  180.         -webkit-transform: translateY(-52%);   
  181.                 transform: translateY(-52%);   
  182.         position: relative;   
  183.         z-index: -2;   
  184.         border-radius: 50% 50% 0 0;   
  185.         -webkit-animation: cd 2s linear infinite;   
  186.                 animation: cd 2s linear infinite;   
  187.     }   
  188.   
  189.     @-webkit-keyframes rotate-windmill {   
  190.         0% {   
  191.             -webkit-transform: rotate(0);   
  192.                     transform: rotate(0);   
  193.         }   
  194.         100% {   
  195.             -webkit-transform: rotate(360deg);   
  196.                     transform: rotate(360deg);   
  197.         }   
  198.     }   
  199.   
  200.     @keyframes rotate-windmill {   
  201.         0% {   
  202.             -webkit-transform: rotate(0);   
  203.                     transform: rotate(0);   
  204.         }   
  205.         100% {   
  206.             -webkit-transform: rotate(360deg);   
  207.                     transform: rotate(360deg);   
  208.         }   
  209.     }   
  210.   
  211.     @-webkit-keyframes cd {   
  212.         0% {   
  213.             background: #F5F5F5;   
  214.         }   
  215.         50% {   
  216.             background: #E1CB82;   
  217.         }   
  218.         75% {   
  219.             background: #F1F358;   
  220.         }   
  221.         100% {   
  222.             background: #FFFC00;   
  223.         }   
  224.     }   
  225.   
  226.     @keyframes cd {   
  227.         0% {   
  228.             background: #F5F5F5;   
  229.         }   
  230.         50% {   
  231.             background: #E1CB82;   
  232.         }   
  233.         75% {   
  234.             background: #F1F358;   
  235.         }   
  236.         100% {   
  237.             background: #FFFC00;   
  238.         }   
  239.     }   
  240.     </style>  
  241. </head>  
  242.   
  243. <body>  
  244.     <div class="windmill">  
  245.         <div class="windmill-head">  
  246.             <div class="wrapper wrapper1">  
  247.                 <div class="leaf leaf1"></div>  
  248.                 <div class="leaf leaf2"></div>  
  249.             </div>  
  250.             <div class="wrapper wrapper2">  
  251.                 <div class="leaf leaf3"></div>  
  252.                 <div class="leaf leaf4"></div>  
  253.             </div>  
  254.         </div>  
  255.         <div class="windmill-pillar"></div>  
  256.     </div>  
  257. </body>  
  258.   
  259. </html>  
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。
HTML / CSS 相关文章推荐
CSS3的Border-radius轻松制作圆角
Dec 24 HTML / CSS
css3气泡 css3关键帧动画创建的动态通知气泡
Feb 26 HTML / CSS
用纯css3和html制作泡沫对话框实现代码
Mar 21 HTML / CSS
使用CSS3来匹配横屏竖屏的简单方法
Aug 04 HTML / CSS
CSS3绘制超炫的上下起伏波动进度加载动画
Apr 21 HTML / CSS
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
Jul 08 HTML / CSS
详解如何在css中引入自定义字体(font-face)
May 17 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
Jun 22 HTML / CSS
HTML5为输入框添加语音输入功能的实现方法
Feb 06 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
Jun 03 HTML / CSS
Html5让容器充满屏幕高度或自适应剩余高度的布局实现
May 14 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
May 19 HTML / CSS
灵活运用CSS3特性绘制简易版围棋效果
Sep 28 #HTML / CSS
CSS3 media queries + jQuery实现响应式导航
Sep 30 #HTML / CSS
CSS3中的元素过渡属性transition示例详解
Nov 30 #HTML / CSS
CSS3 3D立方体效果示例-transform也不过如此
Dec 05 #HTML / CSS
前端制作动画的几种方式(css3,js)
Dec 12 #HTML / CSS
CSS3 三维变形实现立体方块特效源码
Dec 15 #HTML / CSS
css3学习之2D转换功能详解
Dec 23 #HTML / CSS
You might like
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
PHP 接入支付宝即时到账功能
2016/09/18 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
PHP仿微信发红包领红包效果
2016/10/30 PHP
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
微信小程序使用gitee进行版本管理
2018/09/20 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
Django实现文件上传下载
2019/10/06 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
python中温度单位转换的实例方法
2020/12/27 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
英文版销售经理个人求职信
2013/11/20 职场文书
办公室主任先进事迹
2014/01/18 职场文书
《自选商场》教学反思
2014/02/14 职场文书
一年级小学生评语
2014/04/22 职场文书
社区植树节活动总结
2015/02/06 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
表彰大会新闻稿
2015/07/17 职场文书
Ajax异步刷新功能及简单案例
2021/11/20 Javascript
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL