WEB开发 - 关于刷新页面后获取浏览器滚动条位置
现在很多浏览器都会在用户刷新同一个页面的时候,保持窗口滚动条的位置,也就是说,用户刷新前页面处于那个位置刷新后会处于同一个位置。为了获取页面刷新后的位置,我写了一个获取滚...
现在很多浏览器都会在用户刷新同一个页面的时候,保持窗口滚动条的位置,也就是说,用户刷新前页面处于那个位置刷新后会处于同一个位置。为了获取页面刷新后的位置,我写了一个获取滚动条位置的函数bar_top(),这个函数会返回表示滚动条高度的数字。然后我在onload后alert这个值。具体代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Bar_top</title>
<meta charset="UTF-8" />
</head>
<body style="height: 2000px"></body>
<script>
function bar_top() {
if (document.documentElement && (document.documentElement.scrollTop)) {
return document.documentElement.scrollTop;
} else if (document.body && (document.body.scrollTop)) {
return document.body.scrollTop;
} else {
//如果前面两项都没有返回,则表明为它们的值都为0,因此在此返回0
return 0;
}
}
window.onload = function () {
alert(bar_top());
}
</script>
</html>
运行以上代码后,把滚动条拉到低端,在刷新页面。
Opera,Chrome和Firefox都会alert一个表示具体高度的数字。而IE和Safari则得不到预期的结果。
而且,IE和Safari给人的感觉是当用户刷新后的一瞬间会迅速把滚动条拉到顶端,等页面加载完成后在拉回原来的位置(通常这个过程如果不是特别注意会很难察觉),不过我不解之处在于,在IE和Safari下,alert(bar_top())这条语句似乎会在页面加载完成之前执行,但是我明明加了一句window.onload啊,为什么还会出现这种情况,难道这样写不对,onload不是在页面加载完成后才触发吗?
。。。。。。。。
没有满意的答案
。。。。。。。。 展开
<!DOCTYPE html>
<html>
<head>
<title>Bar_top</title>
<meta charset="UTF-8" />
</head>
<body style="height: 2000px"></body>
<script>
function bar_top() {
if (document.documentElement && (document.documentElement.scrollTop)) {
return document.documentElement.scrollTop;
} else if (document.body && (document.body.scrollTop)) {
return document.body.scrollTop;
} else {
//如果前面两项都没有返回,则表明为它们的值都为0,因此在此返回0
return 0;
}
}
window.onload = function () {
alert(bar_top());
}
</script>
</html>
运行以上代码后,把滚动条拉到低端,在刷新页面。
Opera,Chrome和Firefox都会alert一个表示具体高度的数字。而IE和Safari则得不到预期的结果。
而且,IE和Safari给人的感觉是当用户刷新后的一瞬间会迅速把滚动条拉到顶端,等页面加载完成后在拉回原来的位置(通常这个过程如果不是特别注意会很难察觉),不过我不解之处在于,在IE和Safari下,alert(bar_top())这条语句似乎会在页面加载完成之前执行,但是我明明加了一句window.onload啊,为什么还会出现这种情况,难道这样写不对,onload不是在页面加载完成后才触发吗?
。。。。。。。。
没有满意的答案
。。。。。。。。 展开
展开全部
获取坐标: IE (event.x event.y)
获取滚动条位置:
document.body.scrollTop (滚动条离页面最上方的距离)
document.body.scrollLeft (滚动条离页面最左方的距离)
当我用js获取当前垂直或者水平方向滚动条位置的时候,使用"document.body.scrollTop"或者"document.body.scrollLeft"是无效的,得到的数值永远是0。但是,当写在“onscroll”事件里面的时候,上述方法可以获得当前滚动条的位置。
当网页最前面有以下内容:
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
document.documentElement.scrollTop (滚动条离页面最上方的距离)
document.documentElement.scrollLeft (滚动条离页面最左方的距离)
所以为了准确取得当前滚动条的位置,正确的使用方法是:
document.documentElement.scrollTop:垂直方向
document.documentElement.scrollLeft:水平方向
获取滚动条位置:
document.body.scrollTop (滚动条离页面最上方的距离)
document.body.scrollLeft (滚动条离页面最左方的距离)
当我用js获取当前垂直或者水平方向滚动条位置的时候,使用"document.body.scrollTop"或者"document.body.scrollLeft"是无效的,得到的数值永远是0。但是,当写在“onscroll”事件里面的时候,上述方法可以获得当前滚动条的位置。
当网页最前面有以下内容:
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
document.documentElement.scrollTop (滚动条离页面最上方的距离)
document.documentElement.scrollLeft (滚动条离页面最左方的距离)
所以为了准确取得当前滚动条的位置,正确的使用方法是:
document.documentElement.scrollTop:垂直方向
document.documentElement.scrollLeft:水平方向
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询