document.body.scrollTop Firefox返回0:ONLY JS [英] document.body.scrollTop Firefox returns 0 : ONLY JS

查看:128
本文介绍了document.body.scrollTop Firefox返回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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆