最近写一个小demo,需要用到scroll事件,可又不希望它多次执行,网上搜了挺多方法,有一个虽然有点小bug但也挺好用,贴出来与大家分享,直接上栗子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link>
</head>
<body>
</body>
<script>
//创建一些p标签,使网页可以滚动
for(var i=0;i<20;i++){
var p=document.createElement("p");
var t=document.createTextNode("滚动条");
p.appendChild(t);
document.body.appendChild(p);
}
//下面是主要的执行代码,整体思路就是:条件判断+延迟执行。在事件执行之初,复活变量,事件执行完毕后 杀死变量
var tur = true;
window.onscroll = function (){
if(tur){
setTimeout(scro,500);
tur = false; //杀死变量
}else{
}
};
//需要执行的函数
function scro(){
alert(1);
tur = true;//复活变量
};
</script>
</html>