JavaScript防抖 JavaScript防抖案例讲解
angus.dai 人气:0想了解JavaScript防抖案例讲解的相关内容吗,angus.dai在本文为您仔细讲解JavaScript防抖的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:JavaScript防抖,JavaScript防抖讲解,下面大家一起来学习吧。
原理
防抖的原理是:你尽管触发事件,但是我一定要在事件触发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);
加载全部内容