国产探花免费观看_亚洲丰满少妇自慰呻吟_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{ }
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河源市| 阳东县| 綦江县| 江源县| 平江县| 滦平县| 开原市| 普定县| 洛川县| 双桥区| 鞍山市| 伊宁县| 上饶县| 宜黄县| 怀柔区| 玉环县| 元阳县| 清水县| 金溪县| 盐源县| 增城市| 巫溪县| 呼伦贝尔市| 宣恩县| 珠海市| 马山县| 武定县| 大庆市| 库尔勒市| 合作市| 永兴县| 冀州市| 奉节县| 临桂县| 侯马市| 鸡西市| 永川市| 五莲县| 静乐县| 全南县| 大埔区|