问助教一个问题,关于scrollTop的 ,谢谢了

问助教一个问题,关于scrollTop的 ,谢谢了

为什么var top = document.body.scrollTop || document.documentElement.scrollTop || window.pageYOffset;  只能写在window,onscroll这个事件里面,如果我把top定义为全局变量(写在onscroll外面),那么就在这个事件函数里面获取不到top这个全局变量,为什么啊?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
小于飞飞 2017-05-10 19:07:09

你好,在里面,考虑触发滚动事件,就执行 scrollTop 这个。在外不会执行,因为是滚动事件后执行函数里的,但是没有这个呦。祝学习愉快。

  • 提问者 慕田峪5928195 #1
    在滚动时间外面直接用document.body.scrollTop = XXX 进行赋值是可以的,也就是说这样默认触发了滚动事件吗? 如果我不想触发滚动事件有改变卷曲的高度用什么啊offsetTop?
    2017-05-10 20:07:59
  • 小于飞飞 回复 提问者 慕田峪5928195 #2
    你好,单单在外面写document.body.scrollTop = XXX 是可以获得相应的值,注意不过值发生变化,不会自动在执行这个语句,所以课程的触发条件是滚动后 ,这个值变了,然后执行里面的代码;如不想用事件来获取改变的值,可以使用定时器实时来检测这个值的变化,并获取。如解决了你的疑惑,请采纳呦。
    2017-05-13 22:36:38
  • 提问者 慕田峪5928195 回复 小于飞飞 #3
    嗯 谢谢助教,这么晚还来回复,但是感觉还是有些问题,意思就是说document.body.scrollTop = XXX只能放在一个函数内部然后执行这函数才能使它生效? 全局赋值是不能发生变化的?这是document.body.scrollTop这个属性决定的还是因为js的某些原理啊,感觉有一些不懂。我的理解是既然给document.body.scrollTop进行了赋值那么它的值就改变了,值改变了自然浏览器的卷曲高度就变了啊,麻烦了助教,感觉这个问题不解决心里放不下啊
    2017-05-13 23:13:43
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师