如何在鼠标滚轮上滚动水平滚动?

问题描述 投票:19回答:3

刚才,我不小心偶然发现了http://www.benekdesign.com/。在鼠标滚轮上滚动它执行水平滚动。 说真的,我不喜欢这个功能。这有点刺激。但是, 请告诉我如何实现同样的目标。

编辑

哇,萤火虫说他正在使用

/ *水平微小滚动 - 横向网站的平滑滚动脚本2(垂直“Tiny Scrolling”的兄弟)3来自Marco Rosella - http://www.centralscrutinizer.it/en/design/js-php/horizontal-tiny-scrolling 4 v0.6 - 2007年2月14日

javascript jquery html scroll horizontal-scrolling
3个回答
24
投票

看起来他只是将mousewheel event映射到滚动区域。在IE中,只需使用doScroll()方法就可以轻松实现 - 这将按垂直条通常滚动的数量滚动水平条。其他浏览器不支持doScroll()方法,因此您必须使用任意数量的滚动:

var mouseWheelEvt = function (event) {
    if (document.body.doScroll)
        document.body.doScroll(event.wheelDelta>0?"left":"right");
    else if ((event.wheelDelta || event.detail) > 0)
        document.body.scrollLeft -= 10;
    else
        document.body.scrollLeft += 10;

    return false;
}
document.body.addEventListener("mousewheel", mouseWheelEvt);

8
投票

由于上述解决方案对我不起作用,这里我发现另一个:http://css-tricks.com/snippets/jquery/horz-scroll-with-mouse-wheel/

示例:http://digwp.com/archives/horz/


1
投票

另一种形式:

document.addEventListener('wheel', (e) => {
    document.getElementById('scroll_container').scrollLeft += e.deltaY;
})
© www.soinside.com 2019 - 2024. All rights reserved.