2012-02-13 151 views
15

如何讓DOM對象(如div)能夠使用鼠標滾輪或箭頭鍵(如overflow:scroll)滾動,但不顯示滾動條(如overflow:hidden)?可滾動但不滾動條

+0

這是爲什麼downvoted? – sawa 2012-02-13 18:07:45

+1

我不知道 - 會upvote它來彌補;) – 2012-02-13 19:36:11

回答

5

您可以將一個事件監聽器綁定到scrolldown/scrollup(通過mousewheel事件,查看event.wheelDelta計算大小和scroll的直接代碼)並手動將absoluteley定位的div放置在另一個固定高度絕對/相對定位的div內。所以在向下滾動時,減少內部div的y位置,並向上滾動時增加y位置。

對於箭頭鍵,只需將相似的函數綁定到適用於向下/向上箭頭的keydown事件檢查。

我做了一個的jsfiddle這裏exampling這種技術:http://jsfiddle.net/wsmithrill/U7ju8/32/

+0

很好。謝謝。 – sawa 2012-02-13 17:53:43

2

如果你想完全跳過JavaScript中,你可以試試我建議here

基本上,有一個容器div比你的內容div稍窄。將容器設置爲溢出:隱藏,但內容div設置爲溢出:滾動。如果容器較窄,則會隱藏滾動條。

+0

狡猾。我喜歡。 – SpaceBeers 2012-02-13 16:19:07

+0

很高興喜歡它!不幸的是,從可用性的角度來看這很可怕 - 用戶應該怎麼知道網站上有更多的內容? – chipcullen 2012-02-13 16:25:50

+1

真的,但我有一個像這樣的小技巧健康的尊重... – SpaceBeers 2012-02-13 16:28:28

0

如果可能需要此停止向下滾動,當你達到頂峯:

var top_val = $("#inner").css("top"); 
if (top_val.indexOf("-") > -1) 
{ 
    $("#inner").css("top", parseInt($("#inner").css("top"), 10) + 5 + "px"); 
}