Day16

1-什么是事件委托,原理是什么?

  委托就是把自己的事拜托给别人做,让别人来完成

  原理

  利用冒泡的原理,把事件添加到父元素上,委托它们父级代为执行事件

2-js 中有几种定时器,有什么区别?

  setInterval以指定时间为周期循环执行
  setTimeout只在指定时间后执行一次

3-如何清除定时器?

  clearInterval() 定时器的id
  clearTimeout() 

4-封装一个动画函数

  function animate(element, target) {
    //先清理定时器,这样可以保证每次点击按钮都只产生一个定时器
  clearInterval(element.timeId);
  element.timeId = setInterval(function() {
    //获取div的当前位置
  var current = element.offsetLeft;
    //设置每次移动多少像素
  var step = 10;
  step = current < target ? step : -step;
    //每次移动后的位置
  current += step;
    //判断当前位置距离目标位置多少像素
  if (Math.abs(current - target) >= Math.abs(step)) {
    element.style.left = current + "px";
  } else {
    clearInterval(element.timeId);
    element.style.left = target + "px";
  }
    }, 10);
  }

posted @ 2021-02-16 23:18  warisFairy  阅读(37)  评论(0)    收藏  举报