<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(),元素就会移动到点击的位置。

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

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

                  相关文档推荐

                  layui实现图片上传成功后回显点击放大图片功能,html代码部分: !-- html代码--div class="layui-form-item" label class="layui-form-label"上传图片/label div class="layui-input-block" button type="button" class="layui-btn" id="license-auth-letter-
                  Layui实现数据表格中鼠标悬停图片放大离开时恢复原图的效果,最终效果如下图所示: 实现代码如下,在done函数中调用hoverOpenImg方法 var tableIns = window.demoTable = table .render({ elem : '#idTest', id : 'idTest', url : '/postData', //width : 150
                  我们在用到layui时候,需要点击文本输入框调起弹出选择框并选择内容,这个要怎么操作呢?以下两种方法可以参考: 1、点击名称,弹出信息弹框,选择表格中的某一行,实现效果如下: html页面代码 !--计量器具弹出层-- div id="equipment" lay-filter="equipmen
                  https的网站如果引用百度地图,会出现加载不了的问题,这是因为涉及到跨域问题,网站是https的,但是引用百度地图的是http的,这个要怎么操作呢? 比如我引用的地址:http://api.map.baidu.com/api?v=2.0ak=AK显示 后来看了一下,少了一个s=1字段,加一下s=1
                  做小程序项目的时候,客户提了一个功能需求优化,就是长按文字需要复制全部内容,因为有的手机支持全选复制,有的手机不支持全选复制。 通过设置系统剪贴板的内容和获取系统剪贴板的内容实现复制功能 html相关代码: van-field value="{{form.contactPhone}}"
                  由于项目功能需要,要实现对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好的满足这个需求,而且它还是开源的,于是乎就开始学习使用Sortable.js 特点 轻量级但功能强大 移动列表项时有动画 支持触屏设备和大多数浏览器(IE9及以下除外) 支持
                    <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>