关于JS动画

本文探讨JavaScript动画,包括匀速动画的实现原理、封装简单动画函数以及为不同元素设置独立定时器的方法。此外,还详细介绍了缓动动画的制作,通过调整元素每次移动距离实现速度变化,以及如何在动画结束时调用回调函数进行后续处理。
摘要由CSDN通过智能技术生成

一、匀速动画

1.实现原理

通过定时器setInterval() 不断移动盒子位置

步骤:
● 获取盒子当前位置
● 让盒子在当前位置加上1个移动距、
● 利用定时器不断重复这个操作
● 加一个结束定时器的条件
● 元素需要添加定位,才能使用element.style.left

    <script>
      /* 
      - 获取盒子当前位置
- 让盒子在当前位置加上1个移动距离
- 利用定时器不断重复这个操作
- 加一个结束定时器的条件
- 元素需要添加定位,才能使用element.style.left
      */

      var oDiv = document.querySelector('div')

      var timer = setInterval(function () {
   
        if (oDiv.offsetLeft >= 400) {
   
          // 停止定时器  停止动画
          clearInterval(timer)
        }
        oDiv.style.left = oDiv.offsetLeft + 1 + 'px'
      }, 50)
    </script>
2.简单动画函数封装
    <script>
      // 简单动画函数封装
      /* 
       目标对象 obj  target目标位置  time毫秒值
      */

      function animate(obj, target, time) {
   
        var timer = setInterval(function () {
   
          if (obj.offsetLeft >= target) {
   
            // 停止定时器  停止动画
            clearInterval(timer)
          }
          obj.style.left = obj.offsetLeft + 1 + 'px'
        }, time)
      }

      var oDiv = document.querySelector('div')
      animate(oDiv, 300, 50)
      var oSpan = document.querySelector('span')
      animate(oSpan, 500, 20)
    </script>
3.动画函数给不同元素记录不同的定时器

如果多个元素都使用这个动画函数,每次都要var声明这个定时器,我们可以给不同的元素声明不同的定时器(自己专门用自己的定时器)
原理:我们可以很方便的给当前的对象添加属性

 <button>按钮<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值