我在设置scrollTop跨浏览器时遇到问题。我做了一个搜索,说使用下面的解决方案。
我目前得到了:
var body = document.documentElement || document.body;
body.scrollTop = 200;
这适用于IE,而不是Chrome
如果我将其切换:
var body = document.body || document.documentElement;
body.scrollTop = 200;
它适用于chrome,而不是IE
如何解决这个问题?
答案 0 :(得分:4)
此领域存在一些互操作性问题和不兼容性。为了避免用户代理嗅探(并且为了便于迁移到标准API,document.documentElement.scrollTop
控制视口,而不是document.body.scrollTop
),在现代浏览器中实现了一个新的API。
基本上,有一个滚动功能,这样做 -
function scrollViewport(top, left)
{
var eViewport = document.scrollingElement
if (eViewport)
{
if (typeof top !== "undefined")
{
eViewport.scrollTop = top;
}
if (typeof left !== "undefined")
{
eViewport.scrollLeft = left;
}
}
else
{
// Do your current checks or set the scrollLeft and scrollTop
// properties of both of documentElement and body, or user agent
// sniffing, if you must.
// Example -
// var scrollTop = 200;
// Chrome, Internet Explorer and Firefox, I think.
// document.documentElement.scrollTop = scrollTop;
// Safari, at least up to version 11, I think.
// document.body.scrollTop = scrollTop;
// Or just (I am not sure I recommend this)...
// window.scrollTo(0, scrollTop);
}
}
阅读Opera article了解更多信息。
答案 1 :(得分:-1)
使用
var body = document.documentElement;
body.scrollTop = 200;
它应该是跨浏览器,除非你做错了什么,比如错过了html-tag或类似的东西。