<bdo id='j3r29'></bdo><ul id='j3r29'></ul>

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

  1. <small id='j3r29'></small><noframes id='j3r29'>

      <tfoot id='j3r29'></tfoot>

    1. <legend id='j3r29'><style id='j3r29'><dir id='j3r29'><q id='j3r29'></q></dir></style></legend>
    2. JS实现匀速与减速缓慢运动的动画效果封装示例

      下面我将详细讲解如何实现 JS 实现匀速与减速缓慢运动的动画效果封装。
      1. <legend id='XvGx4'><style id='XvGx4'><dir id='XvGx4'><q id='XvGx4'></q></dir></style></legend>

              <tbody id='XvGx4'></tbody>

          • <tfoot id='XvGx4'></tfoot>

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

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

                <bdo id='XvGx4'></bdo><ul id='XvGx4'></ul>

                下面我将详细讲解如何实现 JS 实现匀速与减速缓慢运动的动画效果封装。

                1. 匀速缓动动画

                步骤如下:

                1. 获取元素的起始位置和目标位置
                2. 计算元素移动的距离和移动的总时间
                3. 每个时间间隔移动元素的距离
                4. 将元素移动到目标位置

                示例代码:

                /**
                 * @param {HTMLElement} el
                 * @param {number} target
                 * @param {number} duration
                 */
                function animate(el, target, duration) {
                  var start = parseInt(getComputedStyle(el).left)
                  var distance = target - start
                  var interval = 15 // 时间间隔
                  var speed = distance / (duration / interval) // 每个时间间隔移动的距离
                  var timer = null
                
                  timer = setInterval(function () {
                    var left = parseInt(getComputedStyle(el).left) + speed
                    if ((speed > 0 && left > target) || (speed < 0 && left < target)) {
                      left = target
                    }
                    el.style.left = left + 'px'
                    if (left === target) {
                      clearInterval(timer)
                    }
                  }, interval)
                }
                

                2. 减速缓动动画

                步骤如下:

                1. 获取元素的起始位置和目标位置
                2. 计算元素移动的距离和移动的总时间
                3. 每个时间间隔移动元素的距离
                4. 计算速度,速度递减
                5. 将元素移动到目标位置

                示例代码:

                /**
                 * @param {HTMLElement} el
                 * @param {number} target
                 * @param {number} duration
                 */
                function animate(el, target, duration) {
                  var start = parseInt(getComputedStyle(el).left)
                  var distance = target - start
                  var interval = 15 // 时间间隔
                  var timer = null
                  var speed = 0 // 初始速度
                  var a = 0.0005 // 减速度
                
                  timer = setInterval(function () {
                    var left = parseInt(getComputedStyle(el).left) + speed
                    if ((speed > 0 && left > target) || (speed < 0 && left < target)) {
                      left = target
                    }
                    el.style.left = left + 'px'
                    // 计算速度,速度递减
                    speed += (target - left) * a
                    if (left === target) {
                      clearInterval(timer)
                    }
                  }, interval)
                }
                

                以上是两个封装示例,可以根据实际需求选用。有关更多动画效果的示例,可查看相关学习资料。

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

                相关文档推荐

                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编写贪吃蛇游戏之前,需要掌握以下的前置知识:
              • <i id='HIw0J'><tr id='HIw0J'><dt id='HIw0J'><q id='HIw0J'><span id='HIw0J'><b id='HIw0J'><form id='HIw0J'><ins id='HIw0J'></ins><ul id='HIw0J'></ul><sub id='HIw0J'></sub></form><legend id='HIw0J'></legend><bdo id='HIw0J'><pre id='HIw0J'><center id='HIw0J'></center></pre></bdo></b><th id='HIw0J'></th></span></q></dt></tr></i><div id='HIw0J'><tfoot id='HIw0J'></tfoot><dl id='HIw0J'><fieldset id='HIw0J'></fieldset></dl></div>
                <legend id='HIw0J'><style id='HIw0J'><dir id='HIw0J'><q id='HIw0J'></q></dir></style></legend>

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

                • <tfoot id='HIw0J'></tfoot>

                        <tbody id='HIw0J'></tbody>

                          <bdo id='HIw0J'></bdo><ul id='HIw0J'></ul>