jquery horizontal scroll with mousewheel

心已入冬 提交于 2019-11-28 10:29:05
Mottie

I just answered this question about scrolling a div horizontally, I also included some code to use the mousewheel or just grab and drag with the mouse... maybe some of that code will give you an idea?

To elaborate a bit, the mousewheel function gives you the event object and the delta.

$('#container').bind('mousewheel', function(event,delta){
 if (delta > 0) {
   // mousewheel is going up; 
 } else {
   // mousewheel is going down 
 }
});

The value of delta depends on how fast you scroll the wheel. I've seen a range from +50 to -50 if you try really hard :P

I used the $(window).bind approach in the comments but it wont scroll backwards, only forwards, for both up and down on the wheel.

<script>
    $(window).bind('mousewheel', function(event, delta) {
        if (delta > 0) { window.scrollBy(-80,0); 
        } else window.scrollBy(80,0) ; 
    });
</script>

This solution from the comments above works, but only when moused over the actual element on the page.

$(window).bind('mousewheel', function(event, delta) {
    if (delta > 0) { window.scrollBy(-80,0); 
    } else window.scrollBy(80,0) ; 
});

When just mousing over empty space (for example, if your content is very short and there's some window left over at the bottom) it'll work for about one scroll, and then break (until you scroll back left), which is why one might think that scrolling only works one way. This also seems to be the case with all of the fancy scroll plugins people recommend for this. Hopefully this helps people find a solution in the future.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!