国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript阻止scroll事件多次執行的思路及實現

2019-11-20 21:45:07
字體:
來源:轉載
供稿:網友
寫這個主要是為了解決一些常見網頁特效在js解析時預期與效果不同。

原始代碼 :
復制代碼 代碼如下:

//測試代碼
window.onscroll = function(){
alert("haha");
}

裝在script標簽內 鼠標滑動之后一直惦記 提示框才可以,所以很不方便 ,
而且 目的是鼠標滑動后 只執行一次事件,這個效果顯然和實際不符合吧。

//代碼改進--增加延時器。
既然scroll事件是一個連續觸發事件,那我設置一個延遲器,在用戶滑動鼠標的時間后執行該函數 ,書不是就可以只執行一次啦 。
復制代碼 代碼如下:

//測試代碼:
function haha(){
alert("haha");
}
window.onscroll = function(){
setTimeout(haha,500);
}

結果發現該死的 還是和上面一樣 要彈出很多的警告框--可見 scroll事件像隊列一樣排成一行 ,按順序執行 ,所以此路不通,另想辦法啊。

通過條件控制事件執行 ,這個是個不錯的方法
復制代碼 代碼如下:

function haha(){
alert("haha");
}
var tur = true; //創建條件
window.onscroll = function(){
if(tur){ setTimeout(haha,500); tur = false; }
else
{}
}

慶幸的是,鼠標滾動執行一次代碼 ,問題是 當再次滾動鼠標之后 ,事件再也不執行了。
原因就是條件被設置為false 所以后續的事件永遠不執行了。

思路就是 條件判斷+延遲執行 就可以解決這個問題。在事件執行之初,復活變量,事件執行完畢后 殺死變量。
復制代碼 代碼如下:

var tur = true;
function haha(){alert("haha"); tur = true; }

window.onscroll = function(){
if(tur){ setTimeout(haha,1000); tur = false;
}else{ }
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林口县| 横峰县| 无棣县| 万源市| 曲沃县| 清苑县| 城步| 永昌县| 香格里拉县| 双鸭山市| 贵南县| 绵阳市| 和田市| 天台县| 宁明县| 花莲县| 平顺县| 杭锦后旗| 沛县| 彰化县| 库尔勒市| 永康市| 桦甸市| 三河市| 游戏| 自贡市| 威远县| 阜城县| 长岛县| 恩施市| 台东市| 珠海市| 清河县| 九江县| 灵石县| 金门县| 凉城县| 甘肃省| 林州市| 安徽省| 敦煌市|