![](/img/trans.png)
[英]Cross-browser method to disable vertical scrolling of window using JS/jQuery
[英]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>
的overflow
為hidden
。
$('body').css('overflow','hidden');
...然后在關閉時恢復正常:
$('body').css('overflow','auto');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.