jQuery scrollTop跨浏览器不一致

Nat*_*yer 10 javascript jquery scrolltop

在Chrome和Safari中,$("body").scrollTop(1000)符合预期.

在IE和FF中,没有任何反应.

在IE和FF中,$(window).scrollTop(1000)可以工作,但是它们会去不同的地方.它也可以在Chrome和Safari中使用,但它们也可以在不同的地方使用.他们似乎关闭了高达300-500像素.

是否有任何一致的方法来设置跨浏览器工作的scrollTop属性,如果没有,为什么jQuery不抽象这个?

我也希望为它制作动画,这在Chrome和Safari中运行良好,但在其他浏览器中则无效.

我是浏览器检测的唯一选择吗?(不好的做法)或者有更好的方法吗?

blu*_*bie 11

$(jQuery.browser.webkit ? "body": "html").animate({ scrollTop: myTop }, myDur);

Webkit浏览器(Chrome/Safari,Mac和Win)使用"body",其他(FF/Opera/IE 7-9)使用"html"

一定要喜欢浏览器检测.

  • jQuery.browser从1.3版开始就被弃用,并从1.9中删除 (6认同)

epi*_*isx 6

尝试

$(document).scrollTop("...");
Run Code Online (Sandbox Code Playgroud)