+
95
-

回答

函数写法

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">

<title>函数节流和函数防抖</title>
<style>
.demo {
width: 200px;
height: 200px;
border: 1px solid red;
overflow-y: scroll;
margin-top: 50px;
}
.scroll {
height: 5000px;
}
</style>
</head>
<body>
<div class="wrap">
<div id="nothing" class="demo">
普通滚动
<div class="scroll"></div>
</div>
<div id="throttle" class="demo">
函数节流
<div class="scroll"></div>
</div>
<div id="debounce" class="demo">
函数防抖
<div class="scroll"></div>
</div>
</div>
<script type="text/javascript">

// 函数防抖
var debounce = function(idle, action) {
var last;

return function() {

clearTimeout(last);
last = setTimeout(function() {
action();
}, idle);
}
};
// 函数节流
var throttle = function(delay, action) {
var last = 0;

return function() {

var curr = new Date();

if (curr - last > delay) {
action();
last = curr;
}
}
};
// 普通滚动
document.getElementById("nothing").onscroll = function() {
console.log("普通滚动");
};


var test1 = throttle(800, function() {
console.log("函数节流了")});

// 函数节流
document.getElementById("throttle").onscroll = function() {
test1();
};

var test2 = debounce(800, function() {
console.log("函数防抖了")});
// 函数防抖

document.getElementById("debounce").onscroll = function() {
test2();
};
</script>
</body>
</html>


网友回复

我知道答案,我要回答