2012-02-13 111 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"); 
}