最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

首先需要初始化該對象的一些基本屬性,顯示總頁碼數(shù),中間顯示的頁面數(shù), 添加一個回調(diào)函數(shù),在頁面變化激活回調(diào)函數(shù)并返回當(dāng)前頁面和一些需要的其他參數(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 當(dāng)前頁面數(shù)+左右顯示的平均數(shù)(show_page/2-1)+1和總頁面相比 這個主要判斷省略號在前面的問題(靠近尾頁)前面有省略號

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

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

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

這個判斷其實也是要判斷咱們分頁的邊界條件,如果這個想好了并且實現(xiàn)了 相當(dāng)于就完成了一半 初始化方法的最后是要給上一頁和下一頁,有數(shù)字的頁簽 添加點擊事件 并且做相應(yīng)邏輯處理 代碼的實現(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ū)別,但是核心思想是一樣的。 

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

相關(guān)文章

  • 微信小程序如何獲取用戶頭像和昵稱

    微信小程序如何獲取用戶頭像和昵稱

    這篇文章主要介紹了微信小程序如何獲取用戶頭像和昵稱,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 使用原生js實現(xiàn)頁面蒙灰(mask)效果示例代碼

    使用原生js實現(xiàn)頁面蒙灰(mask)效果示例代碼

    像js的框架Extjs的mask()和unmask()功能提供了蒙灰效果,當(dāng)然jquery也提供了這種蒙灰方法,下面有個示例,大家可以參考下
    2014-06-06
  • JS 操作Array數(shù)組的方法及屬性實例解析

    JS 操作Array數(shù)組的方法及屬性實例解析

    本篇文章主要是對JS操作Array數(shù)組的方法及屬性進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • 分享網(wǎng)頁檢測搖一搖實例代碼

    分享網(wǎng)頁檢測搖一搖實例代碼

    這篇文章主要介紹了分享網(wǎng)頁檢測搖一搖實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 微信小程序?qū)崿F(xiàn)簡單計算器功能

    微信小程序?qū)崿F(xiàn)簡單計算器功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)簡單計算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • javascript數(shù)字驗證的實例代碼(推薦)

    javascript數(shù)字驗證的實例代碼(推薦)

    下面小編就為大家?guī)硪黄猨avascript數(shù)字驗證的實例代碼(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 使用webpack搭建vue項目實現(xiàn)腳手架功能

    使用webpack搭建vue項目實現(xiàn)腳手架功能

    這篇文章主要介紹了使用webpack搭建vue項目實現(xiàn)腳手架功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 微信小程序開發(fā)報:“app.json未找到”錯誤的原因與解決方法

    微信小程序開發(fā)報:“app.json未找到”錯誤的原因與解決方法

    這篇文章主要介紹了微信小程序開發(fā)中常見的“app.json文件內(nèi)容錯誤”及其解決方案,錯誤通常由核心文件路徑錯誤或配置問題引起,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • 使用layer彈窗和layui表單實現(xiàn)新增功能

    使用layer彈窗和layui表單實現(xiàn)新增功能

    最近做項目遇到這樣的需求使用layer在彈窗內(nèi)完成新增,成功后提示并刷新頁面,下面小編給大家?guī)砹耸褂胠ayer彈窗和layui表單做新增功能,具體實現(xiàn)代碼,參考下本文
    2018-08-08
  • JavaScript中的數(shù)組遍歷forEach()與map()方法以及兼容寫法介紹

    JavaScript中的數(shù)組遍歷forEach()與map()方法以及兼容寫法介紹

    下面小編就為大家?guī)硪黄狫avaScript中的數(shù)組遍歷forEach()與map()方法以及兼容寫法介紹。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05

最新評論

张家口市| 阳曲县| 原阳县| 黄大仙区| 嘉义县| 达州市| 吴江市| 蓬莱市| 平顶山市| 镇康县| 连城县| 萨嘎县| 故城县| 高陵县| 庆云县| 灵璧县| 东平县| 静安区| 塔河县| 洞口县| 靖江市| 静安区| 德庆县| 望城县| 尤溪县| 阆中市| 河北区| 襄城县| 鸡东县| 社旗县| 彭州市| 万荣县| 苏尼特右旗| 额尔古纳市| 永丰县| 贵州省| 蒙自县| 和硕县| 洪泽县| 潞城市| 吴忠市|