1

描述这个问题的最好方法它为你提供一个例子:

http://jsfiddle.net/kMPDG/

基本上,如果您在 Chrome 中查看它,当您滚动过去第 2 页时,它应该开始将整个页面向左移动以显示右侧的第 3 页。这在 Google Chrome 中运行良好,但如果您在 Firefox 中尝试相同的示例......在过渡点,滚动变得缓慢而缓慢。

我已经尝试通过一个简单的函数来运行我的滚动函数来限制事件,它工作正常。在那种情况下,迟缓消失了,取而代之的是几毫秒的延迟(显然)。

你们有什么建议可以在这里帮助我吗?

// Code included in case jsfiddle.net fails.
$(function() {
    $('.totheright').css({
        position: "absolute",
        left: "100%",
        width: "100%"
    });
    $('#page3').css({
        marginTop: "40%"
    });

    var page2Offset = $('#page2').offset();
    var page2Width = $('#page2').width();
    var scrollFunc = function() {
        var scrollTop = $(window).scrollTop(),
            scrollLeft = $(window).scrollLeft();
        if(scrollTop > page2Offset.top){
            var diff = (scrollTop - page2Offset.top) * 4;

            if(diff > page2Width)
                $('html, body').scrollLeft(page2Width);
            else
                $('html, body').scrollLeft(diff);
        } else if(scrollLeft != 0) {
            $('html, body').scrollLeft(0);
        }
    };

    $(window).bind('scroll', scrollFunc);
});
4

1 回答 1

0

尝试以下:

$(function() {
var page2Offset = $('#page2').position();
var page2Width = $('#page2').width();
var scrollFunc = function() {
    var scrollTop = $(window).scrollTop(),
        scrollLeft = $(window).scrollLeft();
    if(scrollTop > page2Offset.top){
        var diff = (scrollTop - page2Offset.top) * 4;

        if(diff > page2Width)
            $('html, body').scrollLeft(page2Width);
        else
            $('html, body').scrollLeft(diff);
    } else if(scrollLeft != 0) {
        $('html, body').scrollLeft(0);
    }
  };

   $(window).bind('scroll', scrollFunc);
});

在这里工作小提琴:http: //jsfiddle.net/kMPDG/1/

于 2013-08-07T11:18:48.880 回答