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

首頁 > 語言 > JavaScript > 正文

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

2024-05-06 15:54:29
字體:
來源:轉載
供稿:網友
阻止scroll事件多次執行主要是為了解決一些常見網頁特效在js解析時預期與效果不同,感興趣的朋友可以了解下

寫這個主要是為了解決一些常見網頁特效在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{ }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 安义县| 屏山县| 高台县| 镇康县| 林口县| 丹巴县| 夏津县| 鲜城| 广昌县| 尉氏县| 玛多县| 岗巴县| 隆回县| 云霄县| 通河县| 木兰县| 麦盖提县| 财经| 曲水县| 将乐县| 泸西县| 调兵山市| 昂仁县| 渑池县| 客服| 南开区| 广水市| 澄城县| 安吉县| 洪江市| 军事| 陆良县| 边坝县| 恩平市| 闽侯县| 永州市| 岢岚县| 民县| 明光市| 襄樊市| 随州市|