2012-01-18 80 views
0

我製作了一個平滑垂直滾動的頁面,我想知道您是否可以以某種方式「阻止」,以便用戶無法使用鼠標或觸摸板在頁面上滾動 - 當他們這樣做時,整個想法就會停止。平滑垂直滾動 - 阻止用戶滾動

你可以在我的網頁上看到滾動。 enter link description here

到目前爲止,我剛剛隱藏了滾動條,所以他們不能這樣做。 我想你可以說我要求的是,你可以「阻止」手動滾動嗎?

謝謝。

回答

0

你這樣做的方式很好。我不認爲你可以取消滾動事件,就像你可以與其他事件(按鍵,按鈕點擊等)。

設置溢出隱藏將是我該怎麼做,因爲那完全停止所有滾動。這個事件甚至不會發生在後臺。

以下代碼將阻止使用鼠標滾輪進行滾動。雖然這與我無關,因爲我無法使用鼠標滾輪進行滾動,但可能會阻止使用觸控板進行滾動。

只需添加到您的包含js文件的一個...

window.onmousewheel = document.onmousewheel = function(event){ 
    if (event.preventDefault) event.preventDefault(); 
    event.returnValue = false; 
} 

下面是一個例子...

http://jsfiddle.net/johncmolyneux/aSw2g/

+0

這只是令人討厭,當我突然滾動我的觸摸板,而不是點擊鏈接。如果用戶確實需要點擊鏈接進行滾動,這可能會更好。 – 2012-01-18 18:26:36

+0

好的 - 我沒有遇到過這個問題,因爲我在臺式機上,而不是筆記本電腦上。滾動完全禁用桌面 - 滾輪,光標鍵,頁面上/下全部禁用。 – Archer 2012-01-18 18:54:38

+0

或者你的意思是平板電腦? – Archer 2012-01-18 19:19:06

0

他們有幾種解決方案,但有沒有,我發現完善。該simpliest是:

  • 設置CSS屬性「溢出」隱藏(如果你的身體,你必須設置高度和寬度100%的身體和HTML,再加上沒有邊距/填充邊界)。

  • 您也可以添加偵聽器來滾動事件,然後使用event.prevendDefault()來阻止它們。

但他們總是不良影響,可以「滾動」網頁(和塊)沒有mousescroll:

  • 首先是選擇:你的佈局打破這裏。要嘗試它,從上面選擇並下去,然後頁面將滾動(與鉻)。當沒有文本並且沒有拖放時,這種情況不太可能發生,但是一旦發生,您的用戶因沒有滾動條而丟失。
  • 秒是scrollIntoView()。你可以通過JavaScript調用它,或者瀏覽器有時會自動執行它(href指向錨點,輸入焦點,「重新加載時滾動內存」)。這是最大的風險,但對這些風險的控制很少。

終於,一個「壞」的解決方案,我發現是元素的scrollTop的財產定期強制爲0,但最有可能你會不會到那裏和CSS body { overflow: hidden; height: 100% }就足夠了。