正常情况下,没有设置body的"overflow":"auto":document.body.onscroll事件触发,document.body.scrollTop的值随滚动条下拉变化,但是$(document.body).scroll()事件不能触发。当设置:$('html').css({"height":"100%","overflow":"auto"});$('body').css({"height":"100%","overflow":"auto"});`后,$(document.body).scroll()事件可以触发,但是document.body.onscroll事件不能触发,且在scroll()函数中,取得的document.body.scrollTop的值,一直为0。如何,才能在设置body的"overflow":"auto"后,还能使得document.body.scrollTop的取值不是一直为0?换而言之,就是在jQuery的scroll()事件下,scrollTop的取值一直为0.这个bug怎么解决?
1 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
错误一:在jQuery的scroll事件下,scrollTop是可以取到值的。但是不能把body和HTML的height设置成100%,这样就没有问题了;
错误二:在没有设置body和html的overflow为auto或scroll时,$(body)的scroll事件不会触发,但是其$(window).scroll事件是可以触发的。
要触发一个元素的$().scroll事件,必须把其overflow设置成auto或scroll。但是,此时,原声的document.body.onscroll 事件就触发不了了。
添加回答
举报
0/150
提交
取消