封装的动画函数

/**
 * 
 * @param {*} elem  元素 
 * @param {*} target 移动的距离
 */
function animate(elem, target) {
  // 1.清除定时器
  clearInterval(elem.timer);
  // 2.获取元素的当前位置
  var current = elem.offsetLeft;
  // 3.声明定时器
  elem.timer = setInterval(function () {
    // 4.声明步进值
    var step = 10;
    // 5.判断一下  当前位置是否小于目标值
    step = current < target ? step : -step;
    // 6.累加
    current += step;
    // 7.判断 目标值-当前值 的绝对值  > 步进值的绝对值吗
    if (Math.abs(target - current) > Math.abs(step)) {
      elem.style.left = current + 'px';
    } else {
      // 8.如果小于 清除定时器 把left值赋值为目标值
      clearInterval(elem.timer);
      elem.style.left = target + 'px';
    }
  }, 10)
}
复制代码

第一次在掘金发表东西 好紧张 好激动!

转载于:https://juejin.im/post/5c248c4ee51d453fdd60254c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值