如何使用jQuery滚动到IE的页面顶部

时间:2011-11-29 16:05:56

标签: javascript jquery

我在下面使用jQuery这个Javascript,在页面上显示一个div,当点击它会慢慢地将页面滚动回到页面顶部时,它适用于chrome和firefox,但是当在IE 8上使用它只是去立即顶部而不是慢速向上滚动

有谁能告诉我如何克服这个问题?

// BACK TO TOP
jQuery(window).scroll(function() {
    if (jQuery(window).scrollTop() > 0) $('#jump-link').show();
    else
    $('#jump-link').hide();
});

jQuery('#jump-link').click(function() {
    jQuery('html, body').stop().animate({
        scrollTop: 0
    }, 900);
    return false;
});

2 个答案:

答案 0 :(得分:2)

这是因为重复调用onscroll处理程序。在将滚动动画设置为顶部之前删除onscroll处理程序,然后稍后将其添加回来。 Id est,用以下代码替换第二个块:

jQuery('#jump-link').click(function() {
    jQuery(window).unbind('scroll');
    $('#jump-link').hide();
    jQuery('html, body').stop().animate({
        scrollTop: 0
    }, 900, function() {
        jQuery(window).scroll(function() { ... });

    });
    return false;
});

请注意,您可以通过命名滚动函数来清理代码,并在解绑和重新绑定函数中按名称引用它。

(我假设你已经检查了$.fx.off真实的更明显的可能性,对吗?)

答案 1 :(得分:1)

$.fn.scrollView = function() {
return this.each(function() {
    $('html, body').animate({
        scrollTop: $(this).offset().top
    }, 1000);
});
};

并使用那样的

$('html').scrollView();

你可以摆弄here(只需滚动页面底部并点击最后一个列表项)