赞
踩
摘要:封装了一个动画函数,里面是添加定时器让元素实现移动的动画,当点击按钮 button 触发事件后,元素开始移动,再点击按钮,元素移动加快,不断点击按钮发现元素移动速度会越来越快,解决这个Bug 问题的方法是先清除定时器,只保留当前的一个定时器,这样就不会出现不断点击按钮使元素不断变快移动了。
未清除定时器时的代码:
- <body>
- <button>点击夏雨荷才走</button>
- <span>夏雨荷</span>
- <script>
- function animate(obj, target) {
- // 当我们不断点击按钮,这个元素速度会越来越快,因为开启了太多的定时器
- 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(&#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。