>웹 프론트엔드 >JS 튜토리얼 >페이지 번호 형식을 지원하는 javascript 페이징 클래스_javascript 기술 Jpage 데모 - funnyzak 제공

페이지 번호 형식을 지원하는 javascript 페이징 클래스_javascript 기술 Jpage 데모 - funnyzak 제공

PHP中文网
PHP中文网원래의
2016-05-16 18:39:461679검색

프론트엔드 시간에는 프로젝트 요구로 인해 제품 아래에 첨부된 모든 이미지를 페이징에서 표시해야 하는데 Ajax 요청은 하나씩 고려되지 않으므로 모든 이미지를 한 번에 출력한 후 페이징을 수행합니다. 로드할 때 많은 온라인 jquery, 속성 등이 모두

을 구현했지만 해당 플러그인에는 필요하지 않은 많은 보조 기능이 있으므로 이러한 용도로만 이 라이브러리를 참조할 필요는 없습니다. 기능적인 부분은 속도를 고려하세요. 물론 서버가 좋으면 상관없지만, 사실 이 효과는 꼭 필요한 것은 아니지만 일반적으로 많이 쓰일 것 같아서 카테고리별로 묶어서 담아두었습니다. 배우고 사용하는 데 필요한 사람들을 위해.

다음은 간단한 데모입니다. 페이지 번호 스타일을 직접 편집할 수 있습니다. 더 이상 말도 안되는 소리는 하지 마세요. 직접 읽어보세요. 주석이 달린 사용 지침이 있습니다. . . 강의(3kb)를 이용하시려면 데모를 참고해주세요. 사용법이 이해가 안 되시면 메시지를 남겨주세요.

앞으로는 프로젝트 개발에서 흔히 발생하는 문제점과 해결방안을 천천히 적어서 여러분과 공유하겠습니다.
페이지 번호 형식을 지원하는 javascript 페이징 클래스_javascript 기술 Jpage 데모 - funnyzak 제공
jpage.js

/* 排序工具 by Funny ZAk <silenceacegmail.com> 2009-8-23 
"调用方式 var zp = new zakPage(参数);zp.init(); 
参数以此为 源内容容器,分页结果容器,导航容器,页大小,单挑内容回调函数返回li对象,每个li的样式,选择后的样式没有则为null或"" 
,默认起始页数,格式化页码显示格式*/ 
function zakPage(id,pagec,navid,pagesize,lievt,ds,ss,idx,navp){ 
    this.obj = this; 
    this.pageid = id; 
    this.pagec = pagec; 
    this.navc = navid; 
    this.pagesize = pagesize || 7; 
    this.lievt = lievt || null; 
    this.rcount = 0; 
    this.pagecount = 0; 
    this.cpage = 1; 
    this.ds = ds; 
    if(this.ds == null){this.ds = "";} 
    this.ss = ss; 
    if(this.ss == null){this.ss = "";} 
    this.idx = idx; 
    this.navpre = navp || ["共{$pcount}页/{$rcount}条,当前第{cpage}页","首页","上一页","下一页","末页"]; 
    } 
zakPage.prototype = { 
    init:function(){ 
        document.getElementById(this.pageid).style.display = "none"; 
        this.rcount = document.getElementById(this.pageid).getElementsByTagName("li").length; 
        var residue = this.rcount%this.pagesize; 
        var nums = parseInt(this.rcount/this.pagesize); 
        this.pagecount = nums; 
        if(residue != 0){this.pagecount = nums+1;} 
        this.gopage(this.idx); 
        }, 
    guide:function(){ 
        var nav = document.getElementById(this.navc); 
        var np = this.navpre; 
        nav.innerHTML = np[0].replace("{$rcount}",this.rcount).replace("{$pcount}",this.pagecount).replace("{cpage}",this.cpage); 
        nav.appendChild(this.createa(np[1],1)); 
        nav.appendChild(this.createa(np[2],this.cpage-1)); 
        nav.appendChild(this.createa(np[3],this.cpage+1)); 
        nav.appendChild(this.createa(np[4],this.pagecount)); 
        }, 
    createa:function(html,index){ 
        var aa = document.createElement("a"); 
        aa.innerHTML = html; 
        var o = this.obj; 
        aa.onclick = function(){o.gopage(index);} 
        return aa; 
        }, 
    gopage:function(index){ 
        if(index>this.pagecount){index=1;} 
        if(index<=0){index = this.pagecount;} 
        this.cpage = index; 
        var ghtml = document.getElementById(this.pagec); 
        ghtml.innerHTML = ""; 
        var pages = (index-1)*this.pagesize; 
        var pagee = pages+this.pagesize; 
        if(pagee>this.rcount){pagee = this.rcount;} 
        for(var i=pages;i<pagee;i++){ 
                var lil = document.createElement("li"); 
                lil.className = this.ds; 
                lil.innerHTML = this.litem(i); 
                var sss = this.ss; 
                if(this.lievt !=null){ 
                    lil.lievt = this.lievt; 
                    lil.onclick = function(){ 
                        this.lievt(this); 
                        this.className = sss; 
                        } 
                    } 
                ghtml.appendChild(lil); 
            } 
         this.guide(); 
        }, 
    litem:function(index){ 
            return document.getElementById(this.pageid).getElementsByTagName("li")[index].innerHTML; 
        } 
    }


다음은 js가 포함된 전체 테스트 코드입니다

 
 
 
 
 
Jpage Demo - by funnyzak 
 
 
 
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.