zoukankan      html  css  js  c++  java
  • CSS3 旋转 太阳系

    参考https://www.tadywalsh.com/web/cascading-solar-system/

    首先 旋转有两种方式  一种是使用 transform-origin  另一种是transform: rotate(..) translateY();

    用这个来理解transfrom-origin   http://www.css88.com/tool/css3Preview/Transform.html

    用origin原来做的时钟  http://jsbin.com/hetoli/10

    以及用 后一种实现的太阳系  http://jsbin.com/fotoha/5

    太阳系

    /*两种环绕方式 */
    /*推荐第一种  这一种是确定圆心 再确定半径  */
    @-webkit-keyframes planet{
      0% {
       -webkit-transform:  rotate(0deg) translateY(150px);
      }
      100% {
      -webkit-transform: rotate(360deg) translateY(150px);
      } 
    }
    @-webkit-keyframes satellite{
      0% {
       -webkit-transform:  rotate(0deg) translateY(50px);
      }
      100% {
      -webkit-transform: rotate(360deg) translateY(50px);
      } 
    }
    
    .solar{
      margin-bottom: 100px;
      padding: 100px 100px 200px 100px;
    }
    .sun{
      height:100px;
      width:100px;
      line-height:100px;
      border-radius:100%;
      background:red;
      position: relative;
      left:100px;
      top:100px;
    }
    .planet{
      height: 50px;
      width:50px;
      position: relative;
      top:25px;
      left:25px;
      background: blue;
      border-radius:100%;
      -webkit-animation: planet 15.8s infinite linear;  
    }
    
    .satellite{
      height: 10px;
      width:10px;
      position: relative;
      top:20px;
      left:20px;
      background: grey;
      border-radius:100%;  
      -webkit-animation: satellite 5.8s infinite linear;
    }
    
    
    
    
    @-webkit-keyframes planet2 {
      0% {
     -webkit-transform:rotate(0deg);
      }
      25%{
        -webkit-transform:rotate(90deg);
      }
      50%{
        -webkit-transform:rotate(180deg);
      }
      75%{
        -webkit-transform:rotate(270deg);
      }
      100% {
    -webkit-transform: rotate(360deg) ;
      }  
    }
    
    
    @-webkit-keyframes sate2 {
      0% {
     -webkit-transform:rotate(0deg);
      }
      100% {
    -webkit-transform: rotate(360deg) ;
      }  
    }
    #container{
      padding: 100px 0 0 0;
      height: 600px;
      border: 1px solid black;
    }
    
    
    .sun2{
      height:100px;
      width:100px;
      left:calc(50% - 50px);
      border-radius:100%;
      background:red;
      position: relative;
    /*   -webkit-animation: circle1 5.8s infinite linear; */  
    }
    .planet2{
      height: 50px;
      width:50px;
      position:relative;
      top: 150px; 
      left: 25px;
      /*先确定好行星位置(也就是环上某一个点得位置)*/
      border-radius:100%;
      background: pink;
      /*再确定圆心*/
      transform-origin: center -100px;
     -webkit-animation: planet2 11.8s infinite linear; 
    }
    
    .sate2{
      height: 10px;
      width:10px;
      position: relative;
      top:60px;
      left: 20px;
      background: grey;
      border-radius:100%;
      /*确定圆心*/
      transform-origin: center -35px; 
      -webkit-animation: sate2 1.8s infinite linear;
    }
    /*
    transform-origin: center 1px 相当于在B这个元素的x方向的50% 和 y方向的1px 处打了一个钉子
    然后就绕这个钉子转
    
    我们希望是绕着太阳 转 因此需要计算太阳 的中心点相对于行星左上角的偏移位置  也就是 50 50
    */

    HTML结构

    <!DOCTYPE html>
    <html>
    <head>
    <meta name="description" content="[CSS3 ROTATE simple solar sys]">
      <meta charset="utf-8">
      <title>JS Bin</title>
    </head>
    <body>
      
      <div class="solar">
        <div class="sun">
          <div class="planet">
            <div class="satellite">      </div>
          </div>
        </div>
      </div>
      
    
      
      <hr>
    <div id="container">
    <div class="sun2">
      <div class="planet2">
        <div class="sate2"></div>
      </div>  
    </div>  
    
    </div>
    
    </body>
    </html>
  • 相关阅读:
    懒人的gitlab安装
    SuperFish插件实现鼠标停留浮动的菜单栏.
    Bootstrap I
    京东首页样式分析.
    CentOs装VLC
    TI CC2541的通讯抓包.
    ffmpeg+ffserver实现摄像头直播
    arm linux上的第一个应用程序 BOA移植
    linux内核移植 I
    uboot启动参数
  • 原文地址:https://www.cnblogs.com/cart55free99/p/4497151.html
Copyright © 2011-2022 走看看