猿问

Android上scrollTop为0

正常情况下,没有设置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怎么解决?

拉丁的传说
浏览 1049回答 1
1回答

潇湘沐

错误一:在jQuery的scroll事件下,scrollTop是可以取到值的。但是不能把body和HTML的height设置成100%,这样就没有问题了;错误二:在没有设置body和html的overflow为auto或scroll时,$(body)的scroll事件不会触发,但是其$(window).scroll事件是可以触发的。要触发一个元素的$().scroll事件,必须把其overflow设置成auto或scroll。但是,此时,原声的document.body.onscroll 事件就触发不了了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答