亲宝软件园·资讯

展开

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);

加载全部内容

相关教程
猜你喜欢
用户评论