原理 防抖的原理是:你尽管触发事件,但是我一定要在事件触发n秒之后才执行,如果你在一个事件触发的n秒内又触发了这个事件,那我就以新的事件的时间为准,n秒后再执行。总之,
原理
防抖的原理是:你尽管触发事件,但是我一定要在事件触发n秒之后才执行,如果你在一个事件触发的n秒内又触发了这个事件,那我就以新的事件的时间为准,n秒后再执行。总之,就是要等到你触发完事件n秒内不再触发事件,我才执行。
案例
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="IE=edge, chrome=1"> <title>debounce</title> <style> * { margin: 0; padding: 0; } #container { width: 100%; height: 200px; line-height: 200px; text-align: center; color: #fff; background-color: #444; font-size: 30px; } </style> </head> <body> <div id="container"></div> <script src="debounce.js"></script> </body> </html>
function getUserAction(e) { console.log(this); console.log(e); container.innerHTML = count++; }; function debounce(func, wait) { var timeout; return function () { clearTimeout(timeout); timeout = setTimeout(() => { func.apply(this, arguments); // 解决this和事件对象event }, wait); } } container.onmousemove = debounce(getUserAction, 1000);
到此这篇关于JavaScript防抖案例讲解的文章就介绍到这了,更多相关JavaScript防抖内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!