簡體   English   中英

捕獲滾動​​事件的跨瀏覽器方法(或暫時禁用滾動的更簡單方法)

[英]Cross-browser method to capture scroll events (or an easier way to temporarily disable scrolling)

每當用戶滾動頁面時,我都會嘗試執行 Javascript 函數。

我試過了:

<body onscroll="myScrollFunction()">

這在 Firefox 中工作正常,但不適用於 IE。

我也試過:

window.onscroll = "myScrollFunction()"; 

但這似乎只執行一次該功能,類似於 onload 事件,但進一步滾動不會觸發該事件。 我的文檔類型設置為嚴格; 不知道這是否有所作為。

我怎樣才能讓它在所有瀏覽器上工作?

我想要完成的是一種防止用戶在顯示模式后滾動的方法。 我寧願不使用

overflow:hidden

因為顯示模態時文檔會稍微移動(以補償滾動條),所以我想我可以捕獲滾動功能並將其鎖定到頁面頂部,每當顯示模態時。 如果有更簡單的方法可以做到這一點,請告訴我。

代替

window.onscroll = myScrollFunction();

它將myScrollFunction()的結果分配給 onscroll 處理程序,你想要

window.onscroll = myScrollFunction;

它分配函數本身,因此將在每次滾動時調用。

我建議不要那樣做,你只需給出你的模態對話框position: fixed; 這將把它固定到視口而不是頁面。

當您的燈箱打開時,將<body>overflowhidden

$('body').css('overflow','hidden');

...然后在關閉時恢復正常:

$('body').css('overflow','auto');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM