2011-10-10 23 views
1

所需行为:在元素的鼠标悬停上我想禁用主浏览器窗口滚动或至少使用鼠标滚轮进行滚动。我想在滚动条被禁用时保持滚动条的可见性。使用javascript/css禁用(不隐藏)元素的mouseover主滚动条?

原因:该页面大约是浏览器窗口高度的两倍。有一个滚动条的div。当用鼠标滚动div和列表的底部或顶部时,主窗口开始滚动。这是不必要的行为,因为主窗口滚动通常会移动屏幕上的div内容,甚至完全滚动屏幕,这非常烦人。我希望能够在没有主窗口滚动接管的情况下将鼠标滚动到div的底部,然后将div从视图中滚动出去。我希望任何禁用的滚动条保持可见的原因是因为如果它们被隐藏,则页面的宽度延伸以适应间隙使得内容跳转/移动是不美观的,并且对于鼠标悬停也是有问题的。

这可能使用javascript/css而不是jQuery吗?使用

+0

你所描述的默认浏览器行为。这是人们所期望的,可能不应该被玷污。 – Sparky

+0

我想我至少在这个具体的例子中不同意。如果用户不得不点击一个元素来使长滚动下拉菜单可见(在我的例子中就是这种情况),然后在菜单上被模糊并且使用滚轮,那么它可以安全地作为给定用户关注内容并且想要滚动它,而不是在有人可能错误地将元素错开的情况下尝试滚动整个屏幕并失败。我看不到用户会在这种情况下滚动,并希望浏览的内容滚动到屏幕外。 – Jargonaut

+0

在这种情况下,我相信改变默认行为将是有益的。 – Jargonaut

回答

0

jQuery的可以让页面sroll当鼠标进入 其他滚动区,你有最后的位置:

var scrolltop = 0; 
    var handler = function(ev){$(window).scrollTop(scrolltop)}; 

    $(element).bind("mouseover", function(ev){ 
     scrolltop = $(window).scrollTop(); 
     $(window).bind("scroll",handler); 
    }); 

    $(element).bind("mouseout", function(ev){ 
     $(window).unbind("scroll",handler); 
    }); 

其中元素是其他滚动区