javascript - document.body.scrollTop Firefox 返回 0 : ONLY JS

标签 javascript firefox cross-browser

有纯 javascript 的替代品吗?

以下作品适用于 Opera、Chrome 和 Safari。还没有在资源管理器上测试过:

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);
};

最佳答案

尝试使用这个:document.documentElement.scrollTop。如果我是正确的,document.body.scrollTop 已被弃用。

更新

Chrome 似乎无法按照@Nikolai Mavrenkov 在评论中的建议安全使用答案:

window.pageYOffset ||文档.documentElement.scrollTop ||文档.body.scrollTop || 0

现在应该涵盖所有浏览器。

关于javascript - document.body.scrollTop Firefox 返回 0 : ONLY JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28633221/

相关文章:

javascript - Bootstrap4 JQuery 响应选项卡工作不正确,提供了代码片段

html - Internet Explorer 中的页脚字体太大

html - 在 Firefox 中包装单词

跨浏览器的CSS背景透明度

html - Firefox 隐藏没有内容和高度的表格

javascript - 如何获取最大参数来确定浏览器问题?

javascript - 修改通过 .load() 创建的元素的 CSS

javascript - React 路由器不允许加载图像

javascript - 如何在没有新标签的情况下打开 popup.html?

sqlite - 从places.sqlite 文件中恢复书签