<bdo id='rXhjK'></bdo><ul id='rXhjK'></ul>
  • <legend id='rXhjK'><style id='rXhjK'><dir id='rXhjK'><q id='rXhjK'></q></dir></style></legend>
    1. <tfoot id='rXhjK'></tfoot>

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

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

        JS实现的缓冲运动效果示例

        下面是关于JS实现缓冲运动效果的完整攻略:

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

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

              • <bdo id='qaNeW'></bdo><ul id='qaNeW'></ul>
                <tfoot id='qaNeW'></tfoot>

                  下面是关于JS实现缓冲运动效果的完整攻略:

                  什么是缓冲运动效果

                  缓冲运动效果是一种动画效果,比普通的匀速运动更加流畅自然,因为在运动中不会做出跳跃式的运动。当元素移动到接近目的地时,移动速度就会减缓,直到移动到目的地。

                  JS实现缓冲运动效果

                  JS实现缓冲运动效果的基本思路是,在每个时间间隔的运动过程中,元素移动的距离都是当前移动距离的一部分,这个部分可以通过计算进行调整,使得在接近目的地时运动速度减缓。

                  示例1:缓冲运动,移动到固定距离

                  以下是一个移动到固定距离位置的缓冲运动效果的示例代码:

                  <div id="move" style="width: 100px; height: 100px; background-color: red; position: absolute;"></div>
                  
                  <script>
                      function moveElement(elementId, final_x, final_y, interval) {
                          var element = document.getElementById(elementId);
                          if (element.movement) {
                              clearTimeout(element.movement);
                          }
                          var xpos = parseInt(element.style.left);
                          var ypos = parseInt(element.style.top);
                          if (xpos == final_x && ypos == final_y) {
                              return true;
                          }
                          var dist = Math.sqrt(Math.pow(final_x - xpos, 2) + Math.pow(final_y - ypos, 2));
                          var iterations = Math.ceil(dist / interval);
                          var xstep = (final_x - xpos) / iterations;
                          var ystep = (final_y - ypos) / iterations;
                          var i = 0;
                          function moveStep() {
                              xpos += xstep;
                              ypos += ystep;
                              element.style.left = xpos + "px";
                              element.style.top = ypos + "px";
                              if (++i < iterations) {
                                  element.movement = setTimeout(moveStep, 25);
                              }
                          }
                          moveStep();
                      }
                      var element = document.getElementById('move');
                      element.style.left = '0px';
                      element.style.top  = '0px';
                      moveElement('move', 500, 50, 10);
                  </script>
                  

                  上面的代码中,函数moveElement()用于移动元素到指定的距离,其中包含了计算移动步数、移动速度等的过程。

                  示例2:点击移动到鼠标位置

                  以下是一个通过点击移动到鼠标位置的缓冲运动效果的示例代码:

                  <div id="move" style="width: 100px; height: 100px; background-color: red; position: absolute;"></div>
                  
                  <script>
                      function moveElement(elementId, final_x, final_y, interval) {
                          var element = document.getElementById(elementId);
                          if (element.movement) {
                              clearTimeout(element.movement);
                          }
                          var xpos = parseInt(element.style.left);
                          var ypos = parseInt(element.style.top);
                          if (xpos == final_x && ypos == final_y) {
                              return true;
                          }
                          var dist = Math.sqrt(Math.pow(final_x - xpos, 2) + Math.pow(final_y - ypos, 2));
                          var iterations = Math.ceil(dist / interval);
                          var xstep = (final_x - xpos) / iterations;
                          var ystep = (final_y - ypos) / iterations;
                          var i = 0;
                          function moveStep() {
                              xpos += xstep;
                              ypos += ystep;
                              element.style.left = xpos + "px";
                              element.style.top = ypos + "px";
                              if (++i < iterations) {
                                  element.movement = setTimeout(moveStep, 25);
                              }
                          }
                          moveStep();
                      }
                      var element = document.getElementById('move');
                      element.style.left = '0px';
                      element.style.top  = '0px';
                      element.addEventListener('click', function (e) {
                          var x = e.clientX - 50;
                          var y = e.clientY - 50;
                          moveElement('move', x, y, 10);
                      });
                  </script>
                  

                  上面的代码中,当点击元素时会触发函数moveElement(),元素就会移动到点击的位置。

                  在实际开发中,可以根据具体需求对缓冲运动效果进行修改和优化,比如改变移动速度、修改移动路径等。

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  treetable.js没有checked做联动。于是自己基于treetable开发的一个小功能,希望能和大家一起交流一下。 1. 在当前HTML文档checked监听函数中增加以下代码 //联动 table.on('checkbox(quan_list)', function(obj){ //console.log(obj); //当前id var id = obj.
                  当使用Javascript的attachEvent来绑定事件时,我们希望能够给事件处理函数传递一些参数,但是attachEvent本身并不支持传递参数。下面介绍两种解决方法。
                  KnockoutJS是一款流行的JavaScript库,针对一个web应用程序的建立提供了比较好的基础架构。其中,表单的数据绑定功能是KnockoutJS最为常用的功能之一。本文将详细讲解KnockoutJS 3.x
                  下面是用javascript实现改善用户体验之alert提示效果的完整攻略。
                  在学习JavaScript编写贪吃蛇游戏之前,需要掌握以下的前置知识:
                    <tbody id='8yWxg'></tbody>
                  • <small id='8yWxg'></small><noframes id='8yWxg'>

                  • <legend id='8yWxg'><style id='8yWxg'><dir id='8yWxg'><q id='8yWxg'></q></dir></style></legend>

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