关于scrollTop()=0的汇总帖
我用的谷歌浏览器81.0.4044.129版,老师的代码在我这也是scrollTop()一直是0.我的代码也是
$.fn.UiTop=function(){
var aTag= $('<a href="javascript:;">up</a>');
$(this).append(aTag);
var windowHeight=$(window).height();
console.log('windowHeight'+windowHeight);
$(window).on('scroll',function(){
var top=$('body').scrollTop();
console.log('top'+top);
if(top>windowHeight){
aTag.show();
}
else{
aTag.hide();
}
})
}
百度了下,找到了办法,
https://blog.csdn.net/kouryoushine/article/details/99745904
我想起来之前的提问https://class.imooc.com/course/qadetail/207238,删除了下doctype也好了,我又试了下,把doctype改成 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">也可以
就是直接写成<!DOCTYPE html>不可以。
正在回答
同学你好,能够自己发现问题并解决问题,进而总结方法,这一点非常棒,因为不同的浏览器将scrollTop设置在不同的元素(body或html)上,所以为了兼容不同的浏览器,可以写成$('body,html').scrollTop();而<!DOCTYPE html>不可以是因为<!DOCTYPE html>中没有声明DTD,DTD是文档类型定义(Document Type Definition),是一套关于标记符的语法规则。
希望可以帮到你,祝学习愉快!
//ui-backTop
$.fn.UiTop=function(){
var aTag= $('<a href="javascript:;">up</a>');
$(this).append(aTag);
var windowHeight=$(window).height();
console.log('windowHeight'+windowHeight);
$(window).on('scroll',function(){
// var top=$('body').scrollTop();
var top=window.pageXOffset
||document.documentElement.scrollTop
||document.body.scrollTop
||0;
console.log('top'+top);
if(top>windowHeight){
aTag.show();
}
else{
aTag.hide();
}
})
}
我感觉这个方法更实在,感觉像是不同浏览器下选取不同的top值获取办法

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星