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