函数写法
<!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>
网友回复
python如何实现torrent的服务端进行文件分发p2p下载?
如何在浏览器中录制摄像头和麦克风数据为mp4视频保存下载本地?
go如何编写一个类似docker的linux的虚拟容器?
python如何写一个bittorrent的种子下载客户端?
ai能通过看一个网页的交互过程视频自主模仿复制网页编写代码吗?
ai先写功能代码通过chrome mcp来进行测试功能最后ai美化页面这个流程能行吗?
vue在手机端上下拖拽元素的时候如何禁止父元素及body的滚动导致无法拖拽完成?
使用tailwindcss如何去掉响应式自适应?
有没有直接在浏览器中运行的离线linux系统?
nginx如何保留post或get数据进行url重定向?