最近做一個(gè)H5聊天頁(yè)面,利用jquery的scroll()方法監(jiān)聽(tīng)了滾動(dòng)事件,然后用scrollTop()獲取當(dāng)前頁(yè)面距離能滾動(dòng)的最頂部的高度,當(dāng)scrollTop()小于一定距離就觸發(fā)加載數(shù)據(jù)的請(qǐng)求。實(shí)際情景大概是這樣的,比如每一頁(yè)默認(rèn)顯示10條數(shù)據(jù),用戶第一次進(jìn)頁(yè)面默認(rèn)加載十條,然后用戶滾動(dòng)頁(yè)面,當(dāng)滾動(dòng)到頂部的時(shí)候,請(qǐng)求ajax加載下一頁(yè)的十條數(shù)據(jù),然后把每條數(shù)據(jù)push到當(dāng)前頁(yè)面數(shù)據(jù)的數(shù)組中,但是這時(shí)頁(yè)面會(huì)默認(rèn)停留在加載完數(shù)據(jù)后的最頂部,而想達(dá)到的理想效果是加載數(shù)據(jù)后,頁(yè)面還停留在第一頁(yè)的最后一條。我采用的處理辦法是去計(jì)算新加載的數(shù)據(jù)的總高度,然后讓頁(yè)面滾動(dòng)這個(gè)高度到加載前的位置,可是實(shí)際效果會(huì)出現(xiàn)很明顯的跳動(dòng)現(xiàn)象,而且還有一個(gè)嚴(yán)重的問(wèn)題就是在手機(jī)上用戶滑動(dòng)屏幕較快的話,會(huì)導(dǎo)致在每一頁(yè)的頂部多次觸發(fā)加載數(shù)據(jù)的方法,這樣就會(huì)一次性加載幾頁(yè)的數(shù)據(jù)。。想問(wèn)下一般這種問(wèn)題都是怎么處理的呢?(最好的效果我覺(jué)得應(yīng)該就是加載數(shù)據(jù)后頁(yè)面不動(dòng),滾動(dòng)條一直在當(dāng)前數(shù)據(jù)的位置)其實(shí)如果能保證每次加載數(shù)據(jù)后重新滾動(dòng)到加載前的位置,這樣就不會(huì)觸發(fā)重復(fù)請(qǐng)求的bug,但是在一些蘋(píng)果手機(jī)上這個(gè)滾動(dòng)事件會(huì)失效,導(dǎo)致滾動(dòng)條一直停留在頁(yè)面頂部而重復(fù)觸發(fā)請(qǐng)求。。太蛋疼了。。
jquery滾動(dòng)事件動(dòng)態(tài)加載數(shù)據(jù)怎么避免頁(yè)面的跳動(dòng)現(xiàn)象?
哈士奇WWW
2018-12-12 14:15:31