首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >document.body.scrollTop火狐返回0:只返回JS

document.body.scrollTop火狐返回0:只返回JS
EN

Stack Overflow用户
提问于 2015-02-21 00:02:52
回答 1查看 45.8K关注 0票数 74

在纯javascript中有什么替代方案吗?

下面是歌剧,铬合金和游猎的作品。还没有在explorer上测试过:

http://monkey-me.herokuapp.com

https://github.com/coolcatDev/monkey-me-heroku/blob/master/static/js/myscripts.js

在页面加载时应向下滚动到div '.content':

var destiny = document.getElementsByClassName('content');
var destinyY = destiny[0].offsetTop;
scrollTo(document.body, destinyY, 200);

function scrollTo(element, to, duration) {
    if (duration <= 0) return;
    var difference = to - element.scrollTop;
    var perTick = difference / duration * 2;

    setTimeout(function() {
        element.scrollTop = element.scrollTop + perTick;
        scrollTo(element, to, duration - 2);
    }, 10);
};
EN

回答 1

Stack Overflow用户

发布于 2016-09-23 17:36:52

标准是document.documentElement,这是FF和IE使用的标准。

WebKit使用document.body,并且不能使用该标准,因为如果他们更改为该标准,就会抱怨向后兼容,这篇文章很好地解释了这一点

https://miketaylr.com/posts/2014/11/document-body-scrolltop.html

文档中有一个WebKit现在支持的新属性

https://developer.mozilla.org/en/docs/Web/API/document/scrollingElement

这样你就可以找到正确的元素了

var scrollingElement = document.scrollingElement || document.documentElement;
scrollingElement.scrollTop = 100;

也有一个多层填充

https://github.com/mathiasbynens/document.scrollingElement

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28633221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档