这篇文章主要介绍原生javascript实现分页效果的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都创新互联是专业的崇左网站建设公司,崇左接单;提供成都网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行崇左网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
具体代码如下:
function pageFunc(conf){ this.myFunc = conf.click //用户点击要执行的方法 this.total = conf.total; //总页数 this.currentPage = 1; //当前页码 this.init() //初始化 } pageFunc.prototype.init = function(){ var total = this.total, currentPage = this.currentPage, _this = this; listeners = { 'setWhat' : function(opts) { _this.aClick(opts.src) return false; } }; listenersPre = { 'lmw-pre' : function(opts) { _this.prevClick() return false; } }; listenersAdd = { 'lmw-add' : function(opts) { _this.addClick() return false; } }; var rootele = this.createPage(1,total); document.getElementById('page-coat').innerHTML = rootele $on(document.getElementById('page-coat'), ['click'], listeners);//点击a标签 $on(document.getElementById('page-coat'), ['click'], listenersPre);//点击上一页 $on(document.getElementById('page-coat'), ['click'], listenersAdd);//点击下一页 } //创建HTML分页结构字符串 pageFunc.prototype.createPage = function(page,total){ var str = `${page}` for(var i=1;i<=3;i++){ if(page-i>1){ str = `${page-i}`+str } if(page+i${(page+i)}` } }; if(page-4>1){ str = '...'+str }; if(page+4 ...' }; if(page>1){ str = `上一页1`+str }; if(page ${total}下一页` }; return str } //上一页方法 pageFunc.prototype.prevClick = function(){ var total = this.total var va = --this.currentPage var newret = this.createPage(va, total) document.getElementById('page-coat').innerHTML = newret this.myFunc(va) } //下一页方法 pageFunc.prototype.addClick = function(){ var total = this.total var va = ++this.currentPage var newret = this.createPage(va, total) document.getElementById('page-coat').innerHTML = newret this.myFunc(va) }; //点击方法 pageFunc.prototype.aClick = function(_this){ var total = this.total var va = parseInt(_this.innerText); this.currentPage = va var rootele = this.createPage(va, total) document.getElementById('page-coat').innerHTML = rootele this.myFunc(va) }; //二:封装事件代理方法 function $on(dom, event, listeners) { $addEvent(dom, event, function(e) { var e = e || window.event, src = e.target || e.srcElement, action, returnVal; while (src && src !== dom) { action = src.getAttribute('attr-action') || src.getAttribute('class') ; if (listeners[action]) { returnVal = listeners[action]({ src : src, e : e, action : action }); if (returnVal === false) { break; } } src = src.parentNode; } }); }; //1、封装跨浏览器事件绑定方法 function $addEvent(obj, type, handle) { if(!obj || !type || !handle) { return; } if( obj instanceof Array) { for(var i = 0, l = obj.length; i < l; i++) { $addEvent(obj[i], type, handle); } return; } if( type instanceof Array) { for(var i = 0, l = type.length; i < l; i++) { $addEvent(obj, type[i], handle); } return; } //2、解决IE中this指向window的问题 function createDelegate(handle, context) { return function() { return handle.apply(context, arguments); }; } if(window.addEventListener) { var wrapper = createDelegate(handle, obj); obj.addEventListener(type, wrapper, false); } else if(window.attachEvent) { var wrapper = createDelegate(handle, obj); obj.attachEvent("on" + type, wrapper); } else { obj["on" + type] = handle; } };
使用方法:
分页效果
用原生还是比较麻烦的,为了实现业务,还得去封装一个模仿JQ的.on事件绑定方法。写的比较简陋,一些配置接口没有暴露出来,还可以再抽象暴露。
以上是“原生javascript实现分页效果的方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!