首页 > 开发 > CSS > 正文

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

2024-07-11 08:25:47
字体:
来源:转载
供稿:网友

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

效果

代码

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>   <html lang="en">  
  2.    <head>  
  3.     <meta charset="UTF-8">       <title>小风车-转啊转</title>  
  4.     <style type="text/css">       html {   
  5.         font-size: 10px;        }   
  6.        html * {   
  7.         -webkit-box-sizing: border-box;                    box-sizing: border-box;   
  8.     }      
  9.     .windmill {            width: 25rem;   
  10.         min-height: 30rem;            height: auto;   
  11.         margin: 3rem auto;            display: -webkit-box;   
  12.         display: -webkit-flex;            display: -ms-flexbox;   
  13.         display: flex;            -webkit-box-orient: vertical;   
  14.         -webkit-box-direction: normal;            -webkit-flex-direction: column;   
  15.             -ms-flex-direction: column;                    flex-direction: column;   
  16.         -webkit-box-pack: start;            -webkit-justify-content: flex-start;   
  17.             -ms-flex-pack: start;                    justify-content: flex-start;   
  18.         -webkit-box-align: center;            -webkit-align-items: center;   
  19.             -ms-flex-align: center;                    align-items: center;   
  20.     }        /* 头部 */   
  21.        .windmill-head {   
  22.         height: 20rem;            width: 20rem;   
  23.         display: -webkit-box;            display: -webkit-flex;   
  24.         display: -ms-flexbox;            display: flex;   
  25.         -webkit-box-orient: horizontal;            -webkit-box-direction: normal;   
  26.         -webkit-flex-direction: row;                -ms-flex-direction: row;   
  27.                 flex-direction: row;            -webkit-flex-wrap: wrap;   
  28.             -ms-flex-wrap: wrap;                    flex-wrap: wrap;   
  29.         -webkit-justify-content: space-around;                -ms-flex-pack: distribute;   
  30.                 justify-content: space-around;            -webkit-align-content: space-around;   
  31.             -ms-flex-line-pack: distribute;                    align-content: space-around;   
  32.         -webkit-transform: translateZ(0);                    transform: translateZ(0);   
  33.         -webkit-animation: rotate-windmill 1s linear infinite;                    animation: rotate-windmill 1s linear infinite;   
  34.         border-radius: 50%;            border: 0.1rem solid #DBE526;   
  35.         -webkit-transition: border-radius 2s linear;            transition: border-radius 2s linear;   
  36.     }        /* 两片叶子的包裹层 */   
  37.        .wrapper {   
  38.         display: -webkit-box;            display: -webkit-flex;   
  39.         display: -ms-flexbox;            display: flex;   
  40.         -webkit-box-orient: vertical;            -webkit-box-direction: normal;   
  41.         -webkit-flex-direction: column;                -ms-flex-direction: column;   
  42.                 flex-direction: column;            -webkit-flex-wrap: wrap;   
  43.             -ms-flex-wrap: wrap;                    flex-wrap: wrap;   
  44.         -webkit-box-pack: justify;            -webkit-justify-content: space-between;   
  45.             -ms-flex-pack: justify;                    justify-content: space-between;   
  46.         height: 135%;            width: 50%;   
  47.         -webkit-box-align: center;            -webkit-align-items: center;   
  48.             -ms-flex-align: center;                    align-items: center;   
  49.     }        /* 包裹层对称 */   
  50.        .wrapper1 {   
  51.         -webkit-transform: rotate(-45deg) translate(5rem);                    transform: rotate(-45deg) translate(5rem);   
  52.         -webkit-transform-origin: right center;                    transform-origin: right center;   
  53.     }      
  54.     .wrapper2 {            -webkit-transform: rotate(45deg) translate(-5rem);   
  55.                 transform: rotate(45deg) translate(-5rem);            -webkit-transform-origin: left center;   
  56.                 transform-origin: left center;        }   
  57.     /* 扇叶的形状及底色 */      
  58.     .leaf {            height: 13rem;   
  59.         width: 5rem;            border-radius: 5rem/ 5rem 5rem 20rem 20rem;   
  60.         -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);                    box-shadow: 0.1rem 0.1rem 1rem rgba(64, 56, 56, .35) inset, 0.2rem 0.2rem 0.05rem rgba(0, 0, 0, .65);   
  61.     }      
  62.     .leaf1 {            border: 0.05rem solid #D1A23A;   
  63.         -webkit-transform: rotate(0deg) translate(0);                    transform: rotate(0deg) translate(0);   
  64.         background-color: rgba(230, 0, 100, 5);            background: -webkit-gradient(linear, left top, left bottom, from(#D02CE4), to(#f5f5f5));   
  65.         background: -webkit-linear-gradient(top, #D02CE4, #f5f5f5);            background: linear-gradient(180deg, #D02CE4, #f5f5f5);   
  66.         -webkit-transition: background 2s linear;            transition: background 2s linear;   
  67.     }      
  68.     .leaf2 {            border: 0.05rem solid #49D13A;   
  69.         background-color: rgba(230, 0, 150, 5);            -webkit-transform: rotate(-180deg) translate(0);   
  70.                 transform: rotate(-180deg) translate(0);            background: -webkit-gradient(linear, left top, left bottom, from(#B91717), to(#f5f5f5));   
  71.         background: -webkit-linear-gradient(top, #B91717, #f5f5f5);            background: linear-gradient(180deg, #B91717, #f5f5f5);   
  72.         -webkit-transition: background 2s linear 2s;            transition: background 2s linear 2s;   
  73.     }      
  74.     .leaf3 {            border: 0.05rem solid #C6079D;   
  75.         background-color: rgba(130, 0, 100, 5);            -webkit-transform: rotate(0deg) translate(0);   
  76.                 transform: rotate(0deg) translate(0);            background: -webkit-gradient(linear, left top, left bottom, from(#1CBA9F), to(#f5f5f5));   
  77.         background: -webkit-linear-gradient(top, #1CBA9F, #f5f5f5);            background: linear-gradient(180deg, #1CBA9F, #f5f5f5);   
  78.         -webkit-transition: background 2s linear;            transition: background 2s linear;   
  79.         -webkit-transition: background 2s linear 4s;            transition: background 2s linear 4s;   
  80.     }      
  81.     .leaf4 {            border: 0.05rem solid #3A5FD1;   
  82.         background-color: rgba(230, 100, 100, 5);            -webkit-transform: rotate(-180deg) translate(0);   
  83.                 transform: rotate(-180deg) translate(0);            background: -webkit-gradient(linear, left top, left bottom, from(#335642), to(#f5f5f5));   
  84.         background: -webkit-linear-gradient(top, #335642, #f5f5f5);            background: linear-gradient(180deg, #335642, #f5f5f5);   
  85.         -webkit-transition: background 2s linear 6s;            transition: background 2s linear 6s;   
  86.     }        /* 尾部 */   
  87.        .windmill-pillar {   
  88.         -webkit-transform: translateZ(0);                    transform: translateZ(0);   
  89.         width: 3rem;            height: 20rem;   
  90.         background: #FFF;            -webkit-transform: translateY(-52%);   
  91.                 transform: translateY(-52%);            position: relative;   
  92.         z-index: -2;            border-radius: 50% 50% 0 0;   
  93.         -webkit-animation: cd 2s linear infinite;                    animation: cd 2s linear infinite;   
  94.     }      
  95.     @-webkit-keyframes rotate-windmill {            0% {   
  96.             -webkit-transform: rotate(0);                        transform: rotate(0);   
  97.         }            100% {   
  98.             -webkit-transform: rotate(360deg);                        transform: rotate(360deg);   
  99.         }        }   
  100.        @keyframes rotate-windmill {   
  101.         0% {                -webkit-transform: rotate(0);   
  102.                     transform: rotate(0);            }   
  103.         100% {                -webkit-transform: rotate(360deg);   
  104.                     transform: rotate(360deg);            }   
  105.     }      
  106.     @-webkit-keyframes cd {            0% {   
  107.             background: #F5F5F5;            }   
  108.         50% {                background: #E1CB82;   
  109.         }            75% {   
  110.             background: #F1F358;            }   
  111.         100% {                background: #FFFC00;   
  112.         }        }   
  113.        @keyframes cd {   
  114.         0% {                background: #F5F5F5;   
  115.         }            50% {   
  116.             background: #E1CB82;            }   
  117.         75% {                background: #F1F358;   
  118.         }            100% {   
  119.             background: #FFFC00;            }   
  120.     }        </style>  
  121. </head>     
  122. <body>       <div class="windmill">  
  123.         <div class="windmill-head">               <div class="wrapper wrapper1">  
  124.                 <div class="leaf leaf1"></div>                   <div class="leaf leaf2"></div>  
  125.             </div>               <div class="wrapper wrapper2">  
  126.                 <div class="leaf leaf3"></div>                   <div class="leaf leaf4"></div>  
  127.             </div>           </div>  
  128.         <div class="windmill-pillar"></div>       </div>  
  129. </body>     
  130. </html>  
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表