React中實現手機端滑動分頁功能

2021-09-25 14:27:23 字數 1091 閱讀 4395

最近用react做了乙個手機端,可以說了解了很多以前沒有接觸的東西,其中在專案中實現滑動分頁讓我印象頗為深刻。首先,我們要知道這個功能需要用到哪些準備知識。

一、預備階段

我的想法很簡單,就是計算每次載入的最後一條距離專案footer垂直方向上的距離,從而知道什麼時候需要將當前頁面+1並且向後端傳送請求,將重新獲得的資料加到上一次獲取資料的後面。首先,我們要知道在react中滑動呼叫的事件叫「onscroll」;其次我們知道react中使用虛擬dom是叫this.refs[ref名],獲取這個ref定位的方法叫getboundingclientrect(),由於現在手機的高度不一,所以我選擇的是獲取底部的距離,假設這個ref="footer",則該footer和底部的距離就是

let footery = parseint(this.refs.footer.getboundingclientrect().bottom)
二、實現階段

有了這些背景知識,我們就可以去編寫**了,我先把大致的**放上去,然後逐步解析。

class mycomponents extends component 

}componentwillmount()

this.getdata() )

// 傳送請求

this.setstate(prevstate => )

}touchmove() ),

() => )

}render()

>})}

}}

我先在state初始化時定乙個初始頁碼currentpage為「1」,pagesize定為10,loading是為了達到可以載入資料的時候,只執行一次,如果多次呼叫後台介面會在data中push多次某一頁的內容,這肯定是我們不想要的。然後下滑時呼叫touchmove方法,計算我最後一條資料(第一頁就是index=9,第二頁就是index=19,以此類推)與footer的bottom距離的插值,當達到某個值時,呼叫介面獲取後端資料,將其放到state.data的最後,currentpage+1,這樣可以計算data更新後最後一條與footer的bottom的距離,最後當後端給我們的總條數count與我自己的資料相等時,不再呼叫請求。

JQuery在PC端實現手機觸屏垂直滑動效果

經常會遇到下拉框過長出現垂直滾動條的情況,有時候這個長度還是由使用者來增加的。比如 有乙個評價選單,單擊它會出現乙個浮層,這個浮層列出了很多評語,這些評語都是使用者自己增加的,該帳號下的所有的使用者增加的評價都會顯示出來。很快這個浮層的長度就超過了視窗的長度,那就會出現滾動條,然後樣式就醜爆了。浮層...

jQuery手機實現左右滑動事件

隨著手機的不斷發展,移動端頁面已經逐漸成長起來,但對於移動端的手勢事件並不是十分完善,並沒有左右滑動事件。不過可以通過已存在的事件實現移動端頁面的左右滑動事件。移動端相關的事件 touchstart 手勢觸碰螢幕是觸發該事件 touchmove 手指在螢幕中移動時觸發該事件 touchend 手指離...

手機端左右全屏滑動(加精) 判斷PC還是移動端

js檔案 function window,document document.addeventlistener domcontentloaded function 頁面平移 transform function translate 設定當前頁碼 setpagenow function current...