2011-05-28 110 views
1

我可以禁用Chrome/Safari中的滾動,但將溢出隱藏在身體標記,但在Firefox上,這隻隱藏滾動條,我仍然可以用箭頭鍵滾動。爲什麼是這樣?設置溢出:隱藏到body/html隱藏滾動條,但不禁用滾動在Firefox

此外我使用jQuery來動畫,以滑動到我的頁面上的特定區域。使用FF我必須爲HTML標籤設置動畫,但是使用Chrome/Safari它只是我需要動畫的主體。還沒有在IE中測試過,但我期待這是一個可憎的:D。

那麼,如何我可以禁用在Chrome瀏覽器上滾動的身體,但不是FF?

注意:哦,我已經嘗試設置FF的html標記隱藏溢出,但這只是讓它跳轉到頂部(溢出隱藏在身體正常工作適用於兩個瀏覽器)。

+0

爲什麼不使用容器DIV而不是body/html? – wdm 2011-05-29 07:05:54

+0

你是否在體內建議一個容器div?你認爲FF會對此做出正確的反應嗎? – 2011-06-01 15:12:41

+1

你想要做這樣的事嗎? http://jsfiddle.net/wdm954/pqAJK/10/ – wdm 2011-06-01 17:30:59

回答

0

如果滾動的唯一方法是使用箭頭鍵,則可能只是在按鍵上返回false以防止出現這種情況。

4

你可能身體的位置設置爲「固定」

2

我能夠通過html元素上結合了一個jQuery偵聽​​事件和返回false在Firefox中實現這一點。

// Disable Scrolling by keys 
$("html").keydown(function(event) { 
    switch(event.keyCode) { 
     case 32://space 
     case 33://pgup 
     case 34://pgdn 
     case 35://end 
     case 36://home 
     case 37://left 
     case 38://up 
     case 39://right 
     case 40://down 
      return false; 
    } 
}); 

我試圖jQuery的event.preventDefault()event.stopImmediatePropogation()沒有效果。

+1

對我很好。謝謝! – Mike 2012-04-07 10:09:59

0

如果使用keydown函數,然後textarea使用鍵滾動不起作用...所以我已經完成了下面的代碼。解決了我的問題與Firefox的滾動問題。

$(window).scroll(function() { 
    window.scrollTo(0,0); 
});