zoukankan      html  css  js  c++  java
  • css3 实现运动动画 圆与椭圆

    圆:

    html

    <div class="demo4"><div></div></div>

    css

    .demo4{
                width: 200px;
                height: 200px;
                margin: 100px auto;
                border-radius: 50%;
                position: relative;
                box-sizing: border-box;
            }
            .demo4 div{
                width: 50px;
                height: 50px;
                border-radius: 50%;
                background-color: blue;
                transform-origin:100px 100px;// 移动元素渲染的圆心位置,因为是位置父元素旋转,父元素的圆心是100px 100px
                animation: bb 2s infinite linear;
            }
            @keyframes bb{
                to{
                    transform: rotate(1turn);
                }
            }

    椭圆运动:

    原理就是在圆运动的基础上给父元素添加一个y轴上的上下运动

    css

    .demo4{
                width: 200px;
                height: 300px;
                margin: 100px auto;
                /*border:1px solid red;*/
                border-radius: 50%;
                position: relative;
                box-sizing: border-box;
                animation: cc 1s infinite alternate ease-in-out;//父元素y轴上添加一个循环 往复的上下运动,最终效果看着像是子元素在做椭圆运动
            }
            .demo4 div{
                width: 50px;
                height: 50px;
                border-radius: 50%;
                background-color: blue;
                transform-origin:100px 100px;
                animation: bb 2s infinite linear;
            }
            @keyframes cc{
                to{
                    transform: translateY(50px);
                }
            }
            @keyframes bb{
                to{
                    transform: rotate(1turn);
                }
            }

    钟摆运动:

    这个比较简单,就是把元素的运动参考点移动到顶部中心,就是设置 transform-origin:top center;

    demo:

    html

    <div class="demo3"></div>

    css

    .demo3{
                width: 20px;
                height: 100px;
                background-color: red;
                margin: 100px auto;
                transform-origin: top center;
                transform:rotate(45deg);
                animation: aa .5s infinite alternate ease-in-out;//循环往复的运动,实现运动宁效果的连贯性
    
            }
            @keyframes aa{
                to{
                    transform:rotate(-45deg);
                }
            }

  • 相关阅读:
    CentOS7设置开机自启动命令大全
    CentOS查看何人何时登陆用户
    CentOS显示设置时间命令- date
    CentOS系统命令
    CentOS系统中last命令的作用
    CentOS命令top下你不一定懂的cpu显示信息
    CentOS系统安装后的基础优化
    查看CentOS的网络带宽出口
    storm深入研究
    hadoop学习笔记之-hbase完全分布模式安装-5
  • 原文地址:https://www.cnblogs.com/xiaofenguo/p/10621486.html
Copyright © 2011-2022 走看看