• <legend id='VHkIm'><style id='VHkIm'><dir id='VHkIm'><q id='VHkIm'></q></dir></style></legend>

    • <bdo id='VHkIm'></bdo><ul id='VHkIm'></ul>
      <tfoot id='VHkIm'></tfoot>
    1. <i id='VHkIm'><tr id='VHkIm'><dt id='VHkIm'><q id='VHkIm'><span id='VHkIm'><b id='VHkIm'><form id='VHkIm'><ins id='VHkIm'></ins><ul id='VHkIm'></ul><sub id='VHkIm'></sub></form><legend id='VHkIm'></legend><bdo id='VHkIm'><pre id='VHkIm'><center id='VHkIm'></center></pre></bdo></b><th id='VHkIm'></th></span></q></dt></tr></i><div id='VHkIm'><tfoot id='VHkIm'></tfoot><dl id='VHkIm'><fieldset id='VHkIm'></fieldset></dl></div>

        <small id='VHkIm'></small><noframes id='VHkIm'>

        javascript动画之圆形运动,环绕鼠标运动作小球

        时间:2023-12-09

          <tbody id='AcSfh'></tbody>

      1. <legend id='AcSfh'><style id='AcSfh'><dir id='AcSfh'><q id='AcSfh'></q></dir></style></legend>

        <small id='AcSfh'></small><noframes id='AcSfh'>

          <i id='AcSfh'><tr id='AcSfh'><dt id='AcSfh'><q id='AcSfh'><span id='AcSfh'><b id='AcSfh'><form id='AcSfh'><ins id='AcSfh'></ins><ul id='AcSfh'></ul><sub id='AcSfh'></sub></form><legend id='AcSfh'></legend><bdo id='AcSfh'><pre id='AcSfh'><center id='AcSfh'></center></pre></bdo></b><th id='AcSfh'></th></span></q></dt></tr></i><div id='AcSfh'><tfoot id='AcSfh'></tfoot><dl id='AcSfh'><fieldset id='AcSfh'></fieldset></dl></div>
          • <bdo id='AcSfh'></bdo><ul id='AcSfh'></ul>

                <tfoot id='AcSfh'></tfoot>
                • JavaScript动画之圆形运动

                  在JavaScript中,通过使用CSS3的transform属性或canvas绘图API,可以实现圆形运动效果。接下来,我们以transform属性为例进行详细讲解。

                  示例1:物体沿圆形路径运动

                  1. 首先,需要准备一个容器和一个要运动的物体。将其设置为圆形,如下所示:
                  <div id="container">
                    <div id="ball"></div>
                  </div>
                  
                  <style>
                  #container {
                    width: 500px;
                    height: 500px;
                    border: 1px solid #ccc;
                    border-radius: 50%;
                    position: relative;
                  }
                  
                  #ball {
                    width: 50px;
                    height: 50px;
                    border-radius: 50%;
                    background-color: orange;
                    position: absolute;
                    top: 0;
                    left: 50%;
                    margin-left: -25px;
                  }
                  </style>
                  
                  1. 然后,通过JavaScript代码来设置物体沿圆形路径运动的效果。
                  var container = document.getElementById('container');
                  var ball = document.getElementById('ball');
                  
                  var radius = container.clientWidth / 2 - ball.clientWidth / 2; // 半径
                  var angle = 0; // 角度
                  
                  setInterval(function() {
                    var x = container.clientWidth / 2 + radius * Math.cos(angle);
                    var y = container.clientHeight / 2 + radius * Math.sin(angle);
                  
                    ball.style.top = y - ball.clientHeight / 2 + 'px';
                    ball.style.left = x - ball.clientWidth / 2 + 'px';
                  
                    angle += 0.01; // 每次增加的角度值,可根据实际情况调整
                  }, 16); // 每隔16毫秒执行一次
                  
                  1. 最后就可以看到物体沿圆形路径运动了。

                  示例2:环绕鼠标运动的小球

                  1. 首先,准备一个容器和一个小球。
                  <div id="container2">
                    <div id="ball2"></div>
                  </div>
                  
                  <style>
                  #container2 {
                    width: 500px;
                    height: 500px;
                    border: 1px solid #ccc;
                    position: relative;
                  }
                  
                  #ball2 {
                    width: 50px;
                    height: 50px;
                    border-radius: 50%;
                    background-color: orange;
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    margin-top: -25px;
                    margin-left: -25px;
                  }
                  </style>
                  
                  1. 然后,通过JavaScript代码来设置小球环绕鼠标运动的效果。
                  var container2 = document.getElementById('container2');
                  var ball2 = document.getElementById('ball2');
                  
                  container2.addEventListener('mousemove', function(ev) {
                    var x = ev.clientX - container2.offsetLeft;
                    var y = ev.clientY - container2.offsetTop;
                  
                    var left = x - ball2.clientWidth / 2;
                    var top = y - ball2.clientHeight / 2;
                  
                    var r = Math.sqrt(Math.pow(container2.clientWidth / 2 - x, 2) + Math.pow(container2.clientHeight / 2 - y, 2)); // 小球到容器中心的距离
                    var angle = Math.acos((x - container2.clientWidth / 2) / r);
                  
                    if (y > container2.clientHeight / 2) { // 鼠标在容器下半部分
                      angle = Math.PI * 2 - angle;
                    }
                  
                    ball2.style.left = left + r * Math.cos(angle) + 'px';
                    ball2.style.top = top + r * Math.sin(angle) + 'px';
                  });
                  
                  1. 最后,运行代码,可以看到小球环绕鼠标运动的效果。

                  总结

                  通过以上两个示例,我们可以发现,实现圆形运动效果的核心代码是根据圆的参数方程计算物体的坐标,实现小球环绕鼠标运动的核心是根据三角函数计算物体的坐标。在实际开发中,可以根据具体场景选择使用哪种方式来实现圆形运动效果。

                  上一篇:Android内存泄漏导致原因深入探究 下一篇:原生js实现轮播图的示例代码

                  相关文章

                  • <bdo id='uMKV9'></bdo><ul id='uMKV9'></ul>

                  1. <i id='uMKV9'><tr id='uMKV9'><dt id='uMKV9'><q id='uMKV9'><span id='uMKV9'><b id='uMKV9'><form id='uMKV9'><ins id='uMKV9'></ins><ul id='uMKV9'></ul><sub id='uMKV9'></sub></form><legend id='uMKV9'></legend><bdo id='uMKV9'><pre id='uMKV9'><center id='uMKV9'></center></pre></bdo></b><th id='uMKV9'></th></span></q></dt></tr></i><div id='uMKV9'><tfoot id='uMKV9'></tfoot><dl id='uMKV9'><fieldset id='uMKV9'></fieldset></dl></div>

                    <small id='uMKV9'></small><noframes id='uMKV9'>

                      <legend id='uMKV9'><style id='uMKV9'><dir id='uMKV9'><q id='uMKV9'></q></dir></style></legend>
                    1. <tfoot id='uMKV9'></tfoot>