zoukankan      html  css  js  c++  java
  • HTML5实现简单圆周运动示例

    一、使用JS实现圆周运动

    根据指定圆心、半径,在定时器中移动固定的弧度,重绘圆圈的位置

    源代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        .circle{
            width:20px;
            height:20px;
            background:blue;
            border-radius:50%;
            position: absolute;
        }
        .rectangle{
            width:300px;
            height:300px;
            border:1px solid red;
            position: relative;
        }
        </style>
    </head>
    <body>
        
        <div class="rectangle">
            <div class="circle"></div>
        </div>
    
        <script src="../Js/jquery-1.11.3.min.js"></script>
        <script>
            (function(){
                //圆周运动js实现
                var circle=$('.circle');
                var rect=$('.rectangle');
                //获取半径和圆心
                var centerX=(rect.width()-circle.width())/2;
                var centerY=(rect.height()-circle.height())/2;
                var radius=centerX;
                //时间递进
                var times=0;
                //重绘位置
                function reset(){
                    times+=1;
                    var hudu=(2*Math.PI/360)*times;
                    //console.info(hudu);
                    var x=centerX+Math.sin(hudu)*radius;
                    var y=centerY+Math.cos(hudu)*radius;
                   
                    circle.css({
                        left:x,
                        top:y
                    });
                    //调用自己
                   requestAnimationFrame(reset);
                }
                //启动定时器
                requestAnimationFrame(reset);
            })();
        </script>
    </body>
    </html>

    逆时针旋转效果:

    二、使用CSS实现圆周运动

    使用transform的rotate方法实现旋转,需要重点设置一下圆心位置

    源代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        @keyframes run{
            from{
              transform:rotate(0deg);
            }
            to{
               transform:rotate(360deg);
            }
        }
        .circle{
            width:20px;
            height:20px;
            background:blue;
            border-radius:50%;
            position: absolute;
            transform-origin:110px 110px;
            animation:run 5s linear infinite; 
            left:40px;
            top:40px;
        }
        .rectangle{
            width:300px;
            height:300px;
            border:1px solid red;
            position: relative;
        }
        </style>
    </head>
    <body>
        <div class="rectangle">
            <div class="circle"></div>
        </div>
    </body>
    </html>

    顺时针旋转效果:

    更多:

    HTML5 <a>标签download 属性

    html5 拖放---(二)转

    浏览器记住密码、浏览器记住密码表单自动加载

  • 相关阅读:
    FileZilla相关配置说明
    pod install速度慢,pod repo update 速度慢解决方法
    Vue安装
    mac 远程桌面连接
    .NET MVC 支付宝支付(即时到账)
    windows下生成ssl
    gentelella 开源后台使用记录
    node、npm、gulp安装
    武汉在院新冠肺炎患者清零
    致最可爱的战疫人
  • 原文地址:https://www.cnblogs.com/tianma3798/p/6288861.html
Copyright © 2011-2022 走看看