Jquery滚动代码是跳跃的

时间:2012-12-03 04:08:25

标签: javascript jquery html html5 scroll

好吧,所以当我向上/向下滚动时,我正在向左/向右滚动div。它有效,但它都是跳跃的,看起来很难看。我不能将它用于网站,所以有人可以告诉我如何解决跳跃问题吗?另外,请不要告诉我使用插件。

var numScroll = 0;
            $(document).ready(function() {
                $(window).scroll(function(event){
                    numScroll = $(window).scrollTop();
                    $("#main").css("top", numScroll + "px");
                    $("#main").css("left", -numScroll + "px");
                });
            });

1 个答案:

答案 0 :(得分:0)

我猜测scroll事件正在触发批次,使浏览器在滚动时流失。

我们为什么不告诉你使用插件?重复别人的工作有什么意义?正如它会发生的那样,jQuery throttle/debounce plugin应该可以很好地解决这个问题:

var numScroll = 0;
$(document).ready(function() {
    var $window = $(window);
    var $main = $("#main");

    $window.scroll($.throttle(50, function(event){
        numScroll = $window.scrollTop();
        $main.css({top: numScroll + "px", left: -numScroll + "px"});
    });
}));

请注意选择器缓存以获得更好的性能 - 浏览器对scroll事件所做的工作越少,“跳跃”事件就越少。