2012-11-29 28 views
4

我有一個對話框出現時,用戶單擊任何單位。你可以檢查它是如何工作在這裏:CLICK HERE如何鎖定滾動條並使其可見

我想要做的是鎖定滾動條,如果視口高度大於550像素。現在我將overflow:hidden應用於身體,但是當滾動條隱藏時,這會導致網站跳躍。我想禁用滾動,但仍然顯示滾動條。可能嗎?

在此先感謝!

+2

鏈接似乎是b roken。 –

+1

它沒有壞,現在肯定是 – lukaleli

+1

。當然。 –

回答

7

可以通過檢測滾動和滾動回到原來的位置。(這可能顯得生澀在某些瀏覽器尤其是當你拖動滾動條本身)

function lockScroll() { 
    var lockX = window.scrollX; 
    var lockY = window.scrollY; 

    function lockIt() { 
     window.scrollTo(lockX,lockY); 
     return false; 
    } 

    window.addEventListener("scroll",lockIt,false) 

    return { 
     stop: function(){ 
      window.removeEventListener("scroll",lockIt,false) 
     } 
    } 
} 

使用模擬滾動鎖:

var locker = lockScroll(); // locks scrolling 

而且當你做,你可以重新啓用滾動

locker.stop(); // unlocks scrolling 
+0

謝謝 - 這幫了我。但是有一個小錯誤使它無法使用。你忘了一個「;」在window.addEventListener(「scroll」,lockIt,false)之後..之後,它工作得很好。 (不要在return子句中添加一個 - 以某種方式再次打破它 – Matt

相關問題