scrollTop的疑问
两个问题:
1、如上图所示,为什么获取scrollTop的时候,用的是window对象,在设置scrollTop的时候用的却是html和body元素?
使用window对象不可以吗?请详细解释一下为什么?
2、这里需要给html和body都设置吗?只设置一个不行吗?请详细解释一下为什么?
正在回答
同学你好,‘好帮手慕赵’老师讲解的都是jquery中的scrollTop()方法。这个方法对于window,document,html以及body来说都是适用的,可以设置或者获取

但是截图中是scrollTop属性,是页面的属性

只能通过html,body来设置

获取的时候可以是window或者document

自己测试下,祝学习愉快!
同学你好,对于你的问题解答如下:
获取和设置scrollTop时,使用window对象和html、body对象都是可以的,它们获取到的都是页面滚动的距离。视频中老师可能是为了让同学区分开,所以在获取和设置时使用了不同的对象。当然了,同学自己练习时,如果可以很好地区分开,获取和设置对象使用同一个对象也是可以的。
示例:可以输出测试下结果:

打印结果如下:获取的都是页面滚动的距离,值是相同的

只设置一个也是可以的,但是因为浏览器解析机制的问题,导致获取scrollTop属性时存在兼容性问题,所以为了代码的兼容性,推荐同学参考老师的写法,将html和body都写上。
对于scrollTop的兼容性,老师举一个简单的示例,帮助同学更好的理解
(1)当你的html不小心忘记书写了<!DOCTYPE html>声明时,无法通过html获取到scrollTop属性,只能通过body获取到scrollTop属性。


(2)当添加了<!DOCTYPE html>这句声明之后,只能通过html获取到scrollTop属性,无法通过body获取到scrollTop


祝学习愉快~
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程






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