zoukankan      html  css  js  c++  java
  • css3 翻转

    参考资料:

      WEB骇客  :  http://www.webhek.com/css-flip/

    Demo : Demo (谷歌浏览器观看,没做兼容)

    Demo截图:

    代码:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>Document</title>
      6     <style>
      7     *{ margin:0;padding:0; font-family: '微软雅黑','宋体'; }
      8     
      9     @-webkit-keyframes circling{
     10         0% {
     11             -webkit-transform:rotate(-90deg);
     12         }
     13         100% {
     14             -webkit-transform:rotate(270deg);
     15         }
     16     }    
     17 
     18     @-webkit-keyframes circling2{
     19         0% {
     20             -webkit-transform:rotate(-90deg);
     21         }
     22         100% {
     23             -webkit-transform:rotate(-450deg);
     24         }
     25     }    
     26     @-webkit-keyframes fast-circling{
     27         0% {
     28             -webkit-transform:rotate(-90deg);
     29         }
     30         100% {
     31             -webkit-transform:rotate(270deg);
     32         }
     33     }    
     34 
     35     @-webkit-keyframes fast-circling2{
     36         0% {
     37             -webkit-transform:rotate(-90deg);
     38         }
     39         100% {
     40             -webkit-transform:rotate(-450deg);
     41         }
     42     }    
     43 
     44     .center{ width:950px; margin:100px auto;  }  
     45     .cir-main{ position: relative;width:1px;height:1px; margin:300px auto;-webkit-perspective: 1000;}
     46     .circling-1,.circling-2{position: absolute;border-radius: 50%;border:2px solid #e4e4e4; }
     47     .circling-1{ left:-250px;top:-250px;width:500px;height:500px; }
     48     .circling-2{left:-225px;top:-225px; width:450px;height:450px; }
     49     .line-1,.line-2{position: absolute;left:0;top:0;height:1px;transform-origin:left center;    
     50         -webkit-transform:rotate(-90deg);
     51         -webkit-animation-iteration-count: infinite;
     52         -webkit-animation-direction: normal;
     53         -webkit-animation-duration: 10s; 
     54          -webkit-animation-timing-function: linear;
     55     }
     56 
     57     .line-1{ 
     58 
     59         width:250px;
     60         -webkit-animation-name: circling;
     61         
     62     }
     63 
     64     .line-1:after,.line-2:after{ content:""; position: absolute;right:-12px;top:0; margin:-9px 0 0 0; display: block; width:20px;height:20px; background-color: #7acfe7; border-radius: 50%;opacity: 0.8; }
     65     .line-2{ 
     66 
     67         width:225px; 
     68         -webkit-animation-name: circling2;
     69      
     70     }
     71     
     72     .cir-main.cur .line-1,.cir-main.cur .line-2{
     73 
     74         -webkit-animation-duration: 1.5s; 
     75         -webkit-animation-timing-function: cubic-bezier(0,.62,.24,.88);  
     76 
     77     }
     78     .cir-main.cur .line-1{
     79 
     80         -webkit-animation-name: fast-circling;
     81        
     82     }
     83     .cir-main.cur .line-2{
     84 
     85         -webkit-animation-name: fast-circling2;
     86         
     87     }
     88     .cir-main .paused{
     89         -webkit-animation-play-state:paused;
     90     }
     91     .turn{ position: absolute;left:-150px;top:-150px; width:300px;height:300px; cursor: pointer;transform-style: preserve-3d; transition: 0.6s;}
     92     .on,.off{position: absolute; width:300px;height:300px;border-radius: 50%;border:1px solid #e4e4e4; text-align:center; line-height: 300px; font-size: 30px; transform-origin:center center;transition: 0.6s;transform-style: preserve-3d;backface-visibility: hidden;}
     93     .on{  background-color: rgba(232,243,247,1);color: #333; z-index: 2; -webkit-transform: rotateY(0deg);}
     94     .off{  background-color: rgba(244,163,176,1);color: #fff;transform: rotateY(-180deg); }
     95    .turn.cur .on{ transform: rotateY(180deg); }
     96    .turn.cur .off{ transform: rotateY(0deg); }
     97 
     98     </style>
     99     <script>
    100     window.onload = function(){
    101 
    102         var oMain = document.querySelector('.cir-main');
    103         var oTurn = document.querySelector('.turn');
    104         var oline1 = document.querySelector('.line-1');
    105         var oline2 = document.querySelector('.line-2');
    106 
    107         var timer = null;
    108         var btn = false;
    109 
    110         oTurn.onclick = function(){
    111 
    112             clearTimeout( timer );
    113 
    114             if( btn ){
    115                 
    116 
    117                 this.className = 'turn';
    118 
    119                 oMain.className = 'cir-main';
    120 
    121             }else{
    122 
    123                 clearTimeout( timer );
    124 
    125                 this.className = 'turn cur';
    126 
    127             }
    128 
    129             oMain.className = 'cir-main cur';
    130 
    131             timer = setTimeout(function(){
    132 
    133                 oMain.className = 'cir-main';
    134                 
    135                 clearTimeout( timer );
    136                 
    137             },1500);
    138 
    139             btn = !btn;
    140 
    141         }
    142 
    143     }
    144     </script>
    145 </head>
    146 <body>
    147     <div class="center">
    148 
    149         <div class="cir-main">
    150             <div class="circling-1" ></div>
    151             <div class="circling-2"></div>
    152             <div class="line-1"></div>
    153             <div class="line-2"></div>
    154             <div class="turn">
    155                  <div class="on">
    156                     点击开启
    157                 </div> 
    158                 <div class="off">
    159                     点击关闭
    160                 </div>
    161             </div>
    162         </div>
    163     </div>
    164 </body>
    165 </html>
    View Code

    后记:

    1.上下翻转是 X轴翻转(rotateX),左右翻转是Y轴翻转(rotateY);

    2.backface-visibility: hidden;背面的隐藏;

    3.圆点其实没有动是长方形的div rotate 做的;

    4.重点:

      如果想动态更改 animation-duration 的完成速度时间 有两个方法:

      一、给旋转的对象换不同的class 更改 animation并且animation-name必须赋一个新的keyframes 否则不生效;

      二、JS 修改 animation-duration、animation-name 两个值必须同时修改 并且 animation-name 必须赋一个新的keyframes否则不生效;;

  • 相关阅读:
    作业十三
    作业十二
    第十一次作业
    编译原理第十次作业
    P3388 【模板】割点(割顶) 题解 (Tarjan)
    BuaacodingT141 microhhh的回城 题解(模拟)
    P2055 [ZJOI2009]假期的宿舍 题解(二分图)
    P2764 最小路径覆盖问题 题解(二分图)
    2019.2-2019.3 TO-DO LIST
    P3369 【模板】普通平衡树 题解(Splay/FHQ)
  • 原文地址:https://www.cnblogs.com/auok/p/4754613.html
Copyright © 2011-2022 走看看