gpt4 book ai didi

javascript - jQuery的scrollTo可以在Chrome中使用,但不能在FF中使用

转载 作者:行者123 更新时间:2023-12-02 17:04:48 25 4
gpt4 key购买 nike

好吧,我有一个 scrollTo 函数,如下所示:

$.fn.scrollTo = function(t, d, o)
{
var scrollTarget = t;
var offsetTop = (typeof(o) != 'undefined') ? o : Math.floor((window.innerHeight / 2) - 20);
var duration = (typeof(d) != 'undefined') ? d : 10;
var easing = 'swing';
var scrollPane = $(this);
var scrollY = (typeof scrollTarget == "number") ? scrollTarget : scrollTarget.offset().top + scrollPane.scrollTop() - parseInt(offsetTop);
scrollPane.animate({scrollTop : scrollY }, parseInt(duration), easing, function()
{
if (typeof callback == 'function')
callback.call(this);
});
}

我通过 $("body").scrollTo($obj, 10); 调用它

它在 Chrome 中完美运行,但在 Firefox 中没有任何反应。

scrollToscrollPane.animate 都被调用,但没有任何反应。也没有错误,并且所有值看起来都正确 - 它只是不滚动。

它只被调用一次。

最佳答案

这是因为滚动的顶级页面元素在浏览器之间不一致。某些浏览器(例如 Firfox)需要滚动 html 标签,而基于 WebKit 的浏览器(例如 Chrome)则需要滚动 body 元素。最简单的解决方案是将其应用于两个元素,如下所示。

$("html, body").scrollTo($obj, 10);

<强> Working Example

关于javascript - jQuery的scrollTo可以在Chrome中使用,但不能在FF中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25345873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com