jquery $('html,body').animate和$('body').animate之间的区别?

xzv2uavs  于 2023-03-07  发布在  jQuery
关注(0)|答案(3)|浏览(189)

例如,滚动到页面上的某个元素(即这里:How to go to a specific element on page?

$("#fromTHIS").click(function() {
    $("html, body").animate({ scrollTop: $("#toTHIS").offset().top }, 500);
    return true;
});

我两种都试过了,它们看起来都在做这项工作。我错过了什么?

dw1jzc5e

dw1jzc5e1#

您对两个$('html, body')都使用选择器的原因是因为Web浏览器不一致。经过几次测试,我发现了三件事:
1.浏览器FirefoxIE使用此选择器的html部分
1.“webkit类”中的浏览器,例如:SafariChrome对身体有React。
1.尽管可以通过使用$(document)来避免这个问题。
jQuery错误跟踪器specifically stating this issue here上也有一个票证

q8l4jmvw

q8l4jmvw2#

$('html, body')似乎是跨浏览器滚动动画的jquery解决方案。
如果你想要一个跨浏览器的解决方案没有动画,你可以继续尝试这个:

$(window).scrollTop(0);
// Accepts int of pixels.

测试了最新的Chrome,Opera和FF.似乎跨浏览器工作.(除非有人可以确认,它不工作在IE或Safari或其他)
阅读更多关于jQuery scrollTop的信息。

yhuiod9q

yhuiod9q3#

以下是跨浏览器动画的示例:

//('html, body') is the jquery solution for cross-browser scroll animation
$('html, body').animate({
    scrollTop: $(".abc-container").offset().top+ "-50px"
}, 300)

相关问题