给定时器添加一个事件,只要执行了这个事件定时器才会执行
点击按钮后,执行span
// 给不同的元素指定不同的定时器 function animate(obj, target) { // 当我们不断的点击按钮,这时设定的到达距离就会失效,因为开启了太多的定时器 // 解决方案就是让我们的元素只有一个定时器 // 先清除之前的,在执行当前的 clearInterval(obj.timer) obj.timer = setInterval(function () { if (obj.offsetLeft >= target) { // 停止动画 clearInterval(obj.timer); } obj.style.left = obj.offsetLeft + 1 + 'px'; }, 30) } var div = document.querySelector('div') var span = document.querySelector('span') var btn = document.querySelector('button'); // 调用函数 animate(div, 300); btn.addEventListener('click',function(){ animate(span, 200); })