欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于原生JS實現(xiàn)分頁效果的示例代碼

 更新時間:2022年04月19日 14:14:13   作者:小強112233  
這篇文章主要為大家詳細介紹了如何利用原生js實現(xiàn)分頁效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

這個只是一個分頁的demo,主要是思路整理(很久之前項目用的東西)

分頁實現(xiàn)的效果 主要是 左側(cè)上一頁 右側(cè)是下一頁 中間顯示主要是超過5個顯示 省略號 然后是可配置選項

實現(xiàn)之后的效果

首先需要初始化該對象的一些基本屬性,顯示總頁碼數(shù),中間顯示的頁面數(shù), 添加一個回調(diào)函數(shù),在頁面變化激活回調(diào)函數(shù)并返回當前頁面和一些需要的其他參數(shù) init為對象初始化的方法(里面的參數(shù)都是可以寫成活的,我這里偷懶了所以寫成死的了) 這個里的 z_page 可以接是接口返回的總頁數(shù)

 function Page(obj) {
     this.obj = obj||{page:1,page_count: 0};
     this.z_page = 7;    // 一共顯示的頁碼數(shù)
     this.show_page = this.z_page-2; // 中間顯示多少個頁碼  必須是個基數(shù)好看
     this.fn = this.obj.block;
     this.init()
 }

在init在初始化方法里主要是判斷

1 總頁數(shù)是否小于顯示頁面(這個主要是判斷是否顯示省略號,添加省略號比較麻煩,這個是總頁數(shù)少不用添加)

2 當前頁面數(shù)+左右顯示的平均數(shù)(show_page/2-1)+1和總頁面相比 這個主要判斷省略號在前面的問題(靠近尾頁)前面有省略號

3 左右顯示的平均數(shù)(show_page/2-1)+2(最前面1 和最后的書)大于當前頁面數(shù)(靠近首頁)

第一個圖片(后面有省略號)

4 剩下的狀態(tài)就是中間狀態(tài)(兩側(cè)有省略號)

這個判斷其實也是要判斷咱們分頁的邊界條件,如果這個想好了并且實現(xiàn)了 相當于就完成了一半 初始化方法的最后是要給上一頁和下一頁,有數(shù)字的頁簽 添加點擊事件 并且做相應邏輯處理 代碼的實現(xiàn)

Page.prototype.create = function () {
     // page:1 page_count 17
     // 保證被點擊的頁數(shù)在中間
     var ping = (this.show_page-1)/2; // 左右顯示的平均數(shù)  在中間
     var num = this.obj.page-ping; // 最小頁碼
     var endnum =  (this.obj.page+ping)>this.obj.page_count?this.obj.page_count:(this.obj.page+ping) // 最大頁碼
     console.log(endnum);
     var pageID = document.getElementById('pageID');
     var self= this;
     pageID.innerHTML = '';
     num = num<1?1:num;
     if (this.obj.page_count<= this.z_page) {
         alert('smallPage');
         this.smallPage()
     } else if( (this.obj.page+ping+1)>=this.obj.page_count) {// 還要加上最后一個   接近尾頁
         pageID.appendChild(this.nearBack())
         console.log('尾巴')

     } else if ((ping+2)>=(this.obj.page)) {  //3   接近首頁
         pageID.appendChild( this.nearHome())
         console.log('臨近首頁')
     }else {
         console.log(num,endnum);
         pageID.appendChild(this.centerPage(num,endnum));
     }
     document.onclick = function (event) {
         switch (event.target.className) {
             case 'previous':
                 self._previous();
                 break;
             case 'next':
                 self._next();
                 break;
             default:
                 self.clickLi(event.target);
         }
         self.fn(self.obj.page)
     }
 };

剩下的就是只想邏輯和dom操作了 因為是用的原生js,這里是用的文檔碎片,把我生成的dom全部都放到文檔碎片里,然后一次性返出來 直接append到body上 這個是我的方法代碼

 Page.prototype.nearBack = function () {
     var oFragmeng = document.createDocumentFragment(); // 創(chuàng)建了一個文檔碎片
     var ul = document.createElement('ul')
     var Div = oFragmeng.appendChild(ul);
      Div.innerHTML = '<li>1</li><li>....</li>';
     for (var m=(this.obj.page_count- this.show_page);m<=this.obj.page_count;m++) {
         var li1 = document.createElement('li');
         li1.innerHTML = m;
         if (m===this.obj.page) {
             li1.className = 'active'
         }
         Div.appendChild(li1)
     }
    return oFragmeng.firstChild;
 };

總結(jié):分頁 也會和你實現(xiàn)的分頁效果不同,實現(xiàn)方式也有區(qū)別,但是核心思想是一樣的。 

到此這篇關于基于原生JS實現(xiàn)分頁效果的示例代碼的文章就介紹到這了,更多相關JS分頁效果內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 簡單的JS時鐘實例講解

    簡單的JS時鐘實例講解

    這篇文章主要為大家分享了一個簡單的JS時鐘實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • JS組件Bootstrap dropdown組件擴展hover事件

    JS組件Bootstrap dropdown組件擴展hover事件

    bootstrap的下拉組件,需要點擊click時,方可展示下拉列表。因此對于喜歡簡單少操作的大家來說,點擊一下多少帶來不便,因此,引入hover監(jiān)聽,鼠標經(jīng)過自動展示下拉框。這篇文章主要介紹了JS組件Bootstrap dropdown組件擴展hover事件,感興趣的小伙伴們可以參考一下
    2016-04-04
  • 解決Layui 表單提交數(shù)據(jù)為空的問題

    解決Layui 表單提交數(shù)據(jù)為空的問題

    今天小編就為大家分享一篇解決Layui 表單提交數(shù)據(jù)為空的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 文本框倒敘輸入讓輸入框的焦點始終在最開始的位置

    文本框倒敘輸入讓輸入框的焦點始終在最開始的位置

    所謂的文本框倒敘輸入是指輸入框的焦點始終在最開始的位置,下面是具體的實現(xiàn),感興趣的朋友可以學習下
    2014-09-09
  • 玩轉(zhuǎn)方法:call和apply

    玩轉(zhuǎn)方法:call和apply

    在實現(xiàn)繼承的時候,用到了兩個很特殊的方法,call和apply,下面,我就來說一下這個兩個方法
    2014-05-05
  • Javascript Worker子線程代碼實例

    Javascript Worker子線程代碼實例

    這篇文章主要介紹了Javascript Worker子線程代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • js實現(xiàn)貪吃蛇小游戲(加墻)

    js實現(xiàn)貪吃蛇小游戲(加墻)

    這篇文章主要為大家詳細介紹了js實現(xiàn)貪吃蛇小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 解決bootstrap-select 動態(tài)加載數(shù)據(jù)不顯示的問題

    解決bootstrap-select 動態(tài)加載數(shù)據(jù)不顯示的問題

    今天小編就為大家分享一篇解決bootstrap-select 動態(tài)加載數(shù)據(jù)不顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Javascript閉包實例詳解

    Javascript閉包實例詳解

    閉包就是函數(shù)的局部變量集合,只是這些局部變量在函數(shù)返回后會繼續(xù)存在,本文通過代碼實例給大家介紹javascript閉包,對javascipt閉包相關知識感興趣的朋友一起學習吧
    2015-11-11
  • JS實現(xiàn)為動態(tài)創(chuàng)建的元素添加事件操作示例

    JS實現(xiàn)為動態(tài)創(chuàng)建的元素添加事件操作示例

    這篇文章主要介紹了JS實現(xiàn)為動態(tài)創(chuàng)建的元素添加事件操作,涉及javascript頁面元素動態(tài)添加及事件響應相關操作技巧,需要的朋友可以參考下
    2018-03-03

最新評論