繁体   English   中英

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

[英]How to scroll to the top of page in IE with jQuery

我在下面使用jQuery的Javascript在页面上显示了一个div,当单击该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;
});

这是因为重复调用onscroll处理程序。 在将滚动动画化到顶部之前,请删除onscroll处理程序,然后再将其重新添加。 同上,将第二个块替换为:

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更真实的可能性,对吗?)

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

像那样使用

$('html').scrollView();

您可以在这里摆弄(只需滚动页面底部并单击最后一个列表项)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM