移動端下滑重新整理外掛程式 jQuery外掛程式

2022-08-25 09:21:09 字數 3481 閱讀 6355

由於在工作不能獨自開發,而且為了給他們方便,自己寫過不少的外掛程式,不過今天剛好空閒,發出剛好完成的,移動端的下滑到底重新整理外掛程式。我不是很喜歡寫外掛程式給別人用,因為用起來自然是簡單的,沒什麼難度,所以一起分享下設計思路。

關鍵在資料傳送部分,樣式可以自由定義,再帶到外掛程式中用,外掛程式中使用到別處的載入外掛程式(layer外掛程式,蠻好用的,推薦個廣告~)

首先,看下demo(只是簡單的,沒有帶樣式,讀者自己寫樣式,帶到裡面使用):

使用方式:(傳送資料,我只寫了json格式,資料是json格式,如果需要用到排序或者別的需求,可以帶上data引數,一併上傳到後台的)

var

load;

$('#list').paging(方式,並且跟後台傳到前台的json物件中必須是一致的名字

temp: "姓名: 學號

",

//在提交前執行方法,可以用於顯示載入中狀態

before: function

() ,

//不管在單次結束時候**方法,可以用於結束當前載入中狀態

over: function

() ,

//過濾器,在獲取的每行資料,可以自定義修改填充資料,必須跟後台傳到前台json一致的名字

filter:

},//在所有資料載入完成時候觸發,判斷資料是否結束的依據是當前獲取資料的數目 是否大於 每頁的大小

pageover: function

()

// }).next().pageload();

效果:

先上js**

//

手機端往下移動載入更多

(function

($,window)\s]+)\s*\}/g;

//$.pagingreg = /\]+)\s*\}/g;

//翻頁

this.next = function

()

if(!this

.bpage.data);

}var _this = this

; $.ajax(),

type:_this.bpage.type || 'post',

datatype : _this.bpage.datatype || 'json',

success:

function

(data)

else

//alert("'"+match[1]+"'");

match =$.pagingreg.exec(_this.bpage.temp);

}//alert(temp);

str +=temp;

}//顯示在頁面上

_this.html(_this.html()+str);

_this.bpage.currentpage++;

//成功的**

if(_this.bpage.success)

if(_this.bpage.over)

if(da.length <_this.bpage.size>

}_this.bpage.flag = true

; },

error:

function

()

if(_this.bpage.over)

}});

return

this

; };

//ready繫結滾動事件

this.pageload = function

() }}}

});};

return

this

; };

})(jquery,window);

講解下製作的思路:

其實下滑載入,只是乙個分頁,加上前台的配合而已。

想要獲取到分頁的資料,首先,前台傳到後台需要的基本引數:當前的頁數和每頁的大小數。

因此,在這個外掛程式中,在當前的jquery物件中,儲存了這兩個物件,因為每一頁大小,可以由使用者自己定義,所以,在設定每頁大小時候,先判斷使用者有沒有自己定義了。

還有,所需要的其他引數是,判斷是否結束的引數,這個其實就是乙個標記,根據獲取資料的數目大小和當前的每頁大小來判斷是否結束。

最後,還有乙個很重要的正規表示式,是用於匹配模板中的要填充的地方,看過大部分的框架,其實很多字串匹配,基本是用正規表示式。

paging 其實只是初始化,並還沒載入資料,這時候將一些關鍵的引數初始化。

主要功能在next中,其實說完上邊的引數,應該大概就知道是怎樣的,在next中,因為在外掛程式中,一定要有些操作,比如載入狀態的切換,還有當資料不滿足自己的使用,需要額外的方法。

第乙個就是berofe,在提交之前,可以從原始碼中看到,很簡單的。

提交中,也就是把所需要的引數放上去就可以了,jquery本身封裝就很好。

在data中,比較特殊,因為有可能有使用者自己定義的上傳的資料,所以這裡使用jquery的將兩個物件合併。

在獲取完資料,其實這個外掛程式是前台控制後台的頁數和大小,所以後台其實除了資料,不需要其他內容到前台的。

不過,從後台傳前台的資料,一定要要將陣列資料放在 data中,我固定了它,獲取資料從返回json物件中的data中拿的,下面遍歷也是從這開始。

最主要的功能,遍歷並填充資料:

一開始時候,使用者將模板放在temp中。那在迴圈中,將它拿出來,並且使用正則式的匹配,自動的將 格式的篩選出來,篩選出來,先判斷使用者有沒有filter物件,在filter物件中有沒有使用對資料的過濾,過濾的方法有兩個引數,第乙個是當前列的資料,第二個是當前行的所有資料。這樣就能顯示很多複雜的資料,這樣也就增加了靈活性。

好了,大部分功能就實現了。

在每一行讀取資料時候,先會去匹配是否當前的物件在filter中有

後邊就是結束時候的**方法。

看下實際專案中的使用,不過資料不多。只有一行。主要演示filter功能:

json物件:

,

"subject

": ,

"time

": ,

"createtime

": "

/date(1503127735000)/"}]}

比較複雜的物件,然後在前台使用:

,,就可以顯示出各式各樣的資料

解釋了之後,是不是覺得其實很簡單,這樣寫完,使用起來也是很便捷。

最後,還有個滑動到底部重新整理方法,只需要呼叫pageload方法,裡面其實將滾動到底部的方法裡新增執行next的翻頁方法,就可以實現了,很簡單的下滑重新整理功能。

好了,今天就到這吧。

移動端下拉滾動重新整理

clientheight 視口 viewport 的高度,就是我們在瀏覽器中所能看到內容的高度 screenheight 螢幕高度,實際移動裝置的螢幕高度。scrollheight 真實內容的高度 scrolltop 視窗上面隱藏掉的部分。真實內容高度 視窗高度 上面隱藏的高度 20,作為載入的觸發...

詳解vue移動端 下拉重新整理

說這個功能之前,大家要先了解一下,要怎麼觸發滾動條事件。一定要注意,所有滾動事件都必須要滿足這個條件,橫向滾動條也一樣,只要滿足子元素寬度大於父元素寬度就可以了。下篇文章會講怎麼實現乙個橫向滾動條 先來看看怎麼剖析這個下拉重新整理。要用到的移動端的三個事件 touchstart 手指按下 touch...

移動端下拉重新整理,向後台請求資料

首先說明,下拉重新整理有兩種情況 一,重新重新整理整個頁面.window.location.reload 這種方式也可以做到,前提是進入頁面也是直接從後台取資料,這種方法較簡單 二,下拉後不重新整理頁面,只是向後台傳送ajax請求,這種情況就複雜點,會存在服務端返回資料重複的情況,這個時候一般需要服...