document.body.scrollTop Firefox返回0:ONLY JS [英] document.body.scrollTop Firefox returns 0 : ONLY JS
问题描述
纯粹的JavaScript中的任何替代方案?
以下作品适用于歌剧,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 );
};
尝试使用 .documentElement.scrollTop
。如果我是正确的 document.body.scrollTop
已弃用。
更新 p>
看起来像Chrome不会与答案一起播放,为了安全使用@Nikolai Mavrenkov的建议在评论:
window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
现在所有浏览器都应该被覆盖。
Any alternatives in pure javascript?
The following works in opera, chrome and safari. Have not tested yet on explorer:
http://monkey-me.herokuapp.com
https://github.com/coolcatDev/monkey-me-heroku/blob/master/static/js/myscripts.js
At page load should scroll down to 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);
};
Try using this: document.documentElement.scrollTop
. If I am correct document.body.scrollTop
is deprecated.
Update
Seems like Chrome does not play along with the answer, to be safe use as suggested by @Nikolai Mavrenkov in the comments:
window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0
Now all browsers should be covered.
这篇关于document.body.scrollTop Firefox返回0:ONLY JS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!