水平滚动以跟随垂直滚动位置,反之亦然

时间:2016-03-11 16:06:41

标签: javascript jquery html scroll

我可以让它以单向工作。但是水平滚动根本不起作用。

$(document).scroll(function() {
  $(document).scrollLeft($(document).scrollTop());
});

https://jsfiddle.net/2zu91k4s/3/

我怎样才能使它双向工作?水平滚动跟随垂直,当我水平滚动时,垂直滚动跟随ScrollLeft位置?

此外,似乎Chrome新的平滑滚动功能使得无法使用鼠标滚轮滚动(它在Opera 35中使用阶梯滚动可以正常工作)。有什么想法如何使用它?

1 个答案:

答案 0 :(得分:2)

您需要区分水平和垂直滚动。像这样的东西会起作用:

var lastScrollLeft = 0;
$(window).scroll(function() {
    var documentScrollLeft = $(document).scrollLeft();
    if (lastScrollLeft != documentScrollLeft) {
        //horizontal scroll
        lastScrollLeft = documentScrollLeft;
        $(document).scrollTop($(document).scrollLeft());
    } else {
            //vertical scroll
        $(document).scrollLeft($(document).scrollTop());
    }
});

更新小提琴:https://jsfiddle.net/igor_9000/2zu91k4s/4/

希望有所帮助!