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

JavaScript實(shí)現(xiàn)列表分頁(yè)功能特效

 更新時(shí)間:2015年05月15日 11:27:26   投稿:hebedich  
最近在做一個(gè)小項(xiàng)目,有時(shí)需要制作靜態(tài)頁(yè)面網(wǎng)站,而一旦涉及到文章的分頁(yè),實(shí)現(xiàn)起來(lái)非常麻煩,自己又剛?cè)腴T(mén),對(duì)js不是很熟悉,所以就拿來(lái)練練手。

最近寫(xiě)了一個(gè)js分頁(yè)的方法,盡管已經(jīng)有現(xiàn)成的可以用,但還是想自己寫(xiě)寫(xiě),搞搞清楚。最終實(shí)現(xiàn)的效果是:上一頁(yè)、第一頁(yè)、…(上n個(gè)頁(yè)碼)、n個(gè)頁(yè)碼、…(下n個(gè)頁(yè)碼)、最后一頁(yè)、下一頁(yè)。n可以是奇數(shù)也可以是偶數(shù),一般都喜歡取奇數(shù),星石調(diào)用的時(shí)候傳入的參數(shù)是5。寫(xiě)的時(shí)候,主要注意了以下幾個(gè)地方:

 頁(yè)碼等于1時(shí),只顯示上一頁(yè)、第一頁(yè)、最后一頁(yè),且都沒(méi)有跳轉(zhuǎn);
 頁(yè)碼小于等于2時(shí),不需要中間的n個(gè)頁(yè)碼;
 頁(yè)碼小于等于n時(shí),顯示所有頁(yè)碼,不顯示2個(gè)“…”;
 2個(gè)“…”換頁(yè)時(shí),換n個(gè)頁(yè)碼,如果接近最前面或最后面幾頁(yè)了,則顯示最前面或最后面n個(gè)頁(yè)碼。

  下面貼出代碼,供大家探討:

//總頁(yè)數(shù),當(dāng)前頁(yè)數(shù),跳轉(zhuǎn)地址,第一頁(yè)和最后一頁(yè)之間顯示的頁(yè)碼數(shù)量
function pageBar(tp,cp,url,pn){
    var str = ‘<ul class=”page”>';
    if(tp>1 && cp>1){
      var prev = cp-1;
      str += ‘<li><a class=”prev” title=”上一頁(yè)” href=”javascript:goPage(‘+prev+‘,\”+url+‘\');”><span>上一頁(yè)</span></a></li> ‘;
    }else{
      str += ‘<li><a class=”prev” title=”上一頁(yè)” href=”javascript:void(0);”><span>上一頁(yè)</span></a></li> ‘;
    }
    if(tp>1){
      //第一頁(yè)
      if(cp==1){
        str +=‘<li class=”current”><a href=”javascript:goPage(1,\”+url+‘\');”><span>1</span></a></li> ‘;
      }else{
        str +=‘<li><a href=”javascript:goPage(1,\”+url+‘\');”><span>1</span></a></li> ‘;
      }

      if(tp>2){
        var pnh = Math.floor(pn/2);

        //循環(huán)開(kāi)始頁(yè)碼
        var s = cp-pnh;
        if(s<=1){
          s = 2;
        }

        //循環(huán)結(jié)束頁(yè)碼
        var e = cp+pnh;
        if(e>=tp){
          e = tp-1;
        }

        if(s<=(1+pnh)){
          if(tp>(pn+2)){
            e = s+(pn-1);
            if(e>=tp){
              e = tp-1;
            }
          }else{
            s = 2;
          }
        }

        if(e>=(tp-pnh)){
          if(tp>(pn+2)){
            s = e-(pn-1);
            if(s<=1){
              s = 2;
            }
          }else{
            e = tp-1;
          }
        }

        if(e<s){
          e = s;
        }

        //第一頁(yè)后的多頁(yè)跳轉(zhuǎn)
        if(s>2){
          var sp = cp-pn;
          if(sp<1){
            sp=1;
          }
          str += ‘<li><a name=”break” href=”javascript:goPage(‘+sp+‘,\”+url+‘\');”><span>…</span></a></li> ‘;
        }

        for(var i=s;i<=e;i++){
          if(i==cp){
            str += ‘<li class=”current”><a href=”javascript:goPage(‘+i+‘,\”+url+‘\');”><span>'+i+‘</span></a></li> ‘;
          }else{
            str += ‘<li><a href=”javascript:goPage(‘+i+‘,\”+url+‘\');”><span>'+i+‘</span></a></li> ‘;
          }
        }

        //最后一頁(yè)前的多頁(yè)跳轉(zhuǎn)
        if(e < (tp-1)){
          var ep = cp+pn;
          if(ep>tp){
            ep=tp;
          }
          str += ‘<li><a name=”break” href=”javascript:goPage(‘+ep+‘,\”+url+‘\');”><span>…</span></a></li> ‘;
        }
      }

      //最后一頁(yè)
      if(cp==tp){
        str +=‘<li class=”current”><a href=”javascript:goPage(‘+tp+‘,\”+url+‘\');”><span>'+tp+‘</span></a></li> ‘;
      }else{
        str +=‘<li><a href=”javascript:goPage(‘+tp+‘,\”+url+‘\');”><span>'+tp+‘</span></a></li> ‘;
      }

    }else{
      str +=‘ <li class=”current”><a href=”javascript:void(0);”><span>1</span></a></li> ‘;
    }

    if(tp>1 && cp<tp){
      var next = cp+1;
      str += ‘<li><a class=”next” title=”下一頁(yè)” href=”javascript:goPage(‘+next+‘,\”+url+‘\');”><span>下一頁(yè)</span></a></li>';
    }else{
      str += ‘<li><a class=”next” title=”下一頁(yè)” href=”javascript:void(0);”><span>下一頁(yè)</span></a></li>';
    }
    str += ‘</ul>';
    return str;
  }

  //跳轉(zhuǎn)頁(yè)碼,跳轉(zhuǎn)地址
  function goPage(cp,url){
    window.location.href = url+cp;
  }

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • Webpack學(xué)習(xí)之動(dòng)態(tài)import原理及源碼分析

    Webpack學(xué)習(xí)之動(dòng)態(tài)import原理及源碼分析

    這篇文章主要為大家介紹了Webpack學(xué)習(xí)之動(dòng)態(tài)import原理及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • 原生js滑動(dòng)輪播封裝

    原生js滑動(dòng)輪播封裝

    這篇文章主要為大家詳細(xì)介紹了原生js滑動(dòng)輪播封裝,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • JavaScript 裝逼指南(js另類(lèi)寫(xiě)法)

    JavaScript 裝逼指南(js另類(lèi)寫(xiě)法)

    如何寫(xiě)JavaScript才能逼格更高呢?怎樣才能、讓別人一眼看出你不簡(jiǎn)單呢?是否很期待別人在看完你的代碼之后感嘆一句原來(lái)還可以這樣寫(xiě)呢?下面列出一些在JavaScript時(shí)的裝逼技巧,也可說(shuō)是非常實(shí)用的寫(xiě)法
    2020-05-05
  • 用JS實(shí)現(xiàn)3D球狀標(biāo)簽云示例代碼

    用JS實(shí)現(xiàn)3D球狀標(biāo)簽云示例代碼

    3D球狀標(biāo)簽云的效果想必很多朋友在瀏覽網(wǎng)頁(yè)時(shí)都有見(jiàn)到過(guò)吧,看起來(lái)提復(fù)雜的,其實(shí)實(shí)現(xiàn)起來(lái)挺容易的,感興趣的朋友可以了解下本文
    2013-12-12
  • JS替換字符串中空格方法

    JS替換字符串中空格方法

    這篇文章主要介紹了JS替換字符串中&nbsp方法,非常的簡(jiǎn)單實(shí)用,附上各種示例代碼,有需要的小伙伴可以參考下。
    2015-04-04
  • javascript跨域請(qǐng)求包裝函數(shù)與用法示例

    javascript跨域請(qǐng)求包裝函數(shù)與用法示例

    這篇文章主要介紹了javascript跨域請(qǐng)求包裝函數(shù)與用法,結(jié)合實(shí)例形式分析了javascript基于ajax的跨域請(qǐng)求封裝函數(shù)與相關(guān)使用技巧,需要的朋友可以參考下
    2016-11-11
  • js動(dòng)態(tài)修改表格行colspan列跨度的方法

    js動(dòng)態(tài)修改表格行colspan列跨度的方法

    這篇文章主要介紹了js動(dòng)態(tài)修改表格行colspan列跨度的方法,實(shí)例分析了javascript動(dòng)態(tài)修改html中table屬性的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • js輸入中文效果

    js輸入中文效果

    js輸入中文效果...
    2006-09-09
  • 基于純JS實(shí)現(xiàn)多張圖片的懶加載Lazy過(guò)程解析

    基于純JS實(shí)現(xiàn)多張圖片的懶加載Lazy過(guò)程解析

    這篇文章主要介紹了基于純JS實(shí)現(xiàn)多張圖片的懶加載Lazy過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 一篇文章詳解JS的四種異步解決方案

    一篇文章詳解JS的四種異步解決方案

    異步在JS中是常用的,下面這篇文章主要給大家介紹了關(guān)于JS四種異步解決方案的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用js具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-06-06

最新評(píng)論

邵阳县| 海门市| 天峻县| 荃湾区| 屯留县| 蒙阴县| 大连市| 巨野县| 龙里县| 雷山县| 云林县| 临颍县| 珠海市| 班戈县| 皋兰县| 拜泉县| 镇赉县| 奉新县| 嘉禾县| 铁力市| 星座| 盈江县| 澄迈县| 灵宝市| 兴城市| 顺义区| 东光县| 正安县| 南汇区| 项城市| 邓州市| 金华市| 张家界市| 乌兰浩特市| 宁波市| 九龙坡区| 乾安县| 微山县| 博罗县| 琼结县| 余庆县|