为了账号安全,请及时绑定邮箱和手机立即绑定

为什么osTop不能声明为全局变量

我试了一下,放到外面去就不行了,这是咋么回事

正在回答

3 回答

首先,osTop是当前滚动条距离页面顶部的距离,其次是osTop这个值被window.scroll监听,也就是每次触发滚动条事件都会记录一次osTop的值,并且这个值每次还要减去一个ispeed~~(重点就是,将osTop放在window.scroll里面 就是为了每次触发滚动条事件 就记录一次当前距离页面顶部的值)

0 回复 有任何疑惑可以回复我~
#1

comlejade 提问者

非常感谢!
2015-11-13 回复 有任何疑惑可以回复我~

试想,如果你把它声明为全局变量,那osTop就是一个定值(也就是不会随着滚动条的滚动而改变了),这样就没办法实现由快到慢的返回顶部效果了。。。其实,我猜想你出错的原因可能是  把osTop放到外面后,就代表加载页面时就触发了document.body.scrollTop,那么这个时候osTop的值 必定为 0; 所以 -osTop/6 就等于 -0/6, 这样还能不报错吗?

1 回复 有任何疑惑可以回复我~

因为他是内部定义的 而且其他函数都有私有定义这个名字 所以会报错的

0 回复 有任何疑惑可以回复我~
#1

comlejade 提问者

不太明白。onscroll和onclick函数都要用到,声明成为全局变量不是更方便吗?怎么就报错了?
2015-11-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
回到顶部效果
  • 参与学习       44211    人
  • 解答问题       206    个

回到顶部网站不可缺少的一部分,用JS实现炫酷拉风的回到顶部效果

进入课程

为什么osTop不能声明为全局变量

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信