最近在写官网的分页功能。在网上找了很多案例都太复杂也太重。所以准备写一个简单一点的分页。

需求:把请求到的数据做分页。

准备:使用了网上一个简单的分页插件。

思路:分页相当于tab切换功能。具体实操把数组拆分成若干个数组。这样每个数组就是所需要的每个分页的内容。然后把所有的数组塞到一个对象中就是分页所需要的内容。

上代码

分页插件:

!(function(t, a, e, i) {
var n = function(a, e) {
this.ele = a,
this.defaults = {
currentPage: 1,
totalPage: 10,
isShow: !0,
count: 5,
homePageText: '首页',
endPageText: '尾页',
prevPageText: '上一页',
nextPageText: '下一页',
callback: function() {}
},
this.opts = t.extend({}, this.defaults, e),
this.current = this.opts.currentPage,
this.total = this.opts.totalPage,
this.init();
};
n.prototype = {
init: function() {
this.render(),
this.eventBind();
},
render: function() {
var t = this.opts;
var a = this.current;
var e = this.total;
var i = this.getPagesTpl();
var n = this.ele.empty();
this.isRender = !0,
this.homePage = '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="1">' + t.homePageText + '</a>',
this.prevPage = '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + (a - 1) + '">' + t.prevPageText + '</a>',
this.nextPage = '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + (a + 1) + '">' + t.nextPageText + '</a>',
this.endPage = '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + e + '">' + t.endPageText + '</a>',
this.checkPage(),
this.isRender && n.html("<div class='ui-pagination-container'>" + this.homePage + this.prevPage + i + this.nextPage + this.endPage + '</div>');
},
checkPage: function() {
var t = this.opts;
var a = this.total;
var e = this.current;
t.isShow || (this.homePage = this.endPage = ''),
e === 1 && (this.homePage = this.prevPage = ''),
e === a && (this.endPage = this.nextPage = ''),
a === 1 && (this.homePage = this.prevPage = this.endPage = this.nextPage = ''),
a <= 1 && (this.isRender = !1);
},
getPagesTpl: function() {
var t = this.opts;
var a = this.total;
var e = this.current;
var i = '';
var n = t.count;
if (a <= n) {
for (g = 1; g <= a; g++) {
i += g === e ? '<a href="javascript:void(0);" class="ui-pagination-page-item active" data-current="' + g + '">' + g + '</a>' : '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + g + '">' + g + '</a>';
}
} else {
var s = n / 2;
if (e <= s) {
for (g = 1; g <= n; g++) {
i += g === e ? '<a href="javascript:void(0);" class="ui-pagination-page-item active" data-current="' + g + '">' + g + '</a>' : '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + g + '">' + g + '</a>';
}
} else {
var r = Math.floor(s);
var h = e + r;
var o = e - r;
var c = n % 2 == 0;
h > a && (c ? (o -= h - a - 1,
h = a + 1) : (o -= h - a,
h = a)),
c || h++;
for (var g = o; g < h; g++) {
i += g === e ? '<a href="javascript:void(0);" class="ui-pagination-page-item active" data-current="' + g + '">' + g + '</a>' : '<a href="javascript:void(0);" class="ui-pagination-page-item" data-current="' + g + '">' + g + '</a>';
}
}
}
return i;
},
setPage: function(t, a) {
return t === this.current && a === this.total ? this.ele : (this.current = t,
this.total = a,
this.render(),
this.ele);
},
getPage: function() {
return {
current: this.current,
total: this.total
};
},
eventBind: function() {
var a = this;
var e = this.opts.callback;
this.ele.off('click').on('click', '.ui-pagination-page-item', function() {
var i = t(this).data('current');
a.current != i && (a.current = i,
a.render(),
e && typeof e === 'function' && e(i));
});
}
},
t.fn.pagination = function(t, a, e) {
if (typeof t === 'object') {
var i = new n(this,t);
this.data('pagination', i);
}
return typeof t === 'string' ? this.data('pagination')[t](a, e) : this;
}
;
}(jQuery, window, document));

js:

$(function () {
var dt;
var agg = {};
var ihtml = [];
$.ajax({
url: 'website/news/list',
type: 'POST',
dataType: "json",
data: {
'type': '1'
},
success: function (datas) { //请求成功后处理函数。
dt = datas.result
data = datas.result
console.log(datas)
for (var i in data) {
ihtml.push('<div class="col-sm-12 col-md-4">' +
'<a href="news-child.html?articleId=' + data[i].id + '" target="_blank">' +
'<div class="f1">' +
'<span>' +
'<img src="' + data[i].img + '"/ alt="" width="262">' +
'</span>'
+
'<h2 class="f-tit">' + data[i].title + '</h2>' +
'<p class="f-cont">' + showHTML(data[i].content, 200, " ......") + '</p>' +
'<p class="f-time">' + data[i].updateTime.substring(0, 10) + '</p>'
+
'</div>' +
'</a>' +
'</div>') }
var cp = 12;
var len = ihtml.length / cp;
len = parseInt(ihtml.length % cp != 0 ? len + 1 : len); for (var i = 0; i < len; i++) {
var start = i * cp;
var end = start + cp;
end = end > ihtml.length ? ihtml.length : end;
ihtml.slice(start, end);
console.log(ihtml.slice(start, end));
agg[i] = (ihtml.slice(start, end));
htmltext = '' +
'' + (ihtml.slice(start, end)).join("") + '' +
''
}
ss(len);
},
error: function (d, msg) {
console.log("Could not find user " + msg);
}
}); var htmltext = '';
function ss(ind) { var i = 0;
i != 0 ? agghtml(agg[i]) : agghtml(agg[0]);
$("#pagination1").pagination({
currentPage: 1,
totalPage: ind,
callback: function (current) {
$("#current1").text(current)
console.log(current);
i = current - 1;
agghtml(agg[i]);
}
});
} function agghtml(arr) {
htmltext = '' +
'' + arr.join("") + '' +
''; $(".focus .container").html(htmltext);
}
}); function showHTML(str, length, endstr) {
if (str != null) {
var html = str.replace(/<[^>]+>/g, "").replace(/&nbsp;/ig, "").substring(0, length) + endstr;
return html;
}
return null; }

css

button {
display: inline-block;
padding: 6px 12px;
font-weight: 400;
line-height: 1.42857143;
text-align: center;
vertical-align: middle;
cursor: pointer;
border: 1px solid transparent;
border-radius: 4px;
border-color: #28a4c9;
color: #fff;
background-color: #5bc0de;
margin: 20px 20px 0 0;
} .box {
width: 800px;
margin: 100px auto 0;
height: 34px;
} .pages {
padding: 50px 0 0;
text-align: right;
margin: 0 416px;
} .info {
width: 200px;
height: 34px;
line-height: 34px;
} .ui-pagination-container {
height: 34px;
line-height: 34px
} .ui-pagination-container .ui-pagination-page-item {
font-size: 14px;
padding: 4px 10px;
background: #fff;
border: 1px solid #c5b7b7;
color: #888;
margin: 0 3px;
text-decoration: none
} .ui-pagination-container .ui-pagination-page-item:hover {
border-color: #568dbd;
color: #568dbd;
text-decoration: none
} .ui-pagination-container .ui-pagination-page-item.active {
background: #568dbd;
border-color: #568dbd;
color: #fff;
cursor: default
}

html:

<div class="content">
<div class="focus">
<!-- 渲染内容 -->
<div class="focus-1 container">
<!-- <div class="col-sm-12 col-md-4">
<a href="news-child.html" target="_blank">
<div class="f1"><span><img src="data:images/n01.jpg" alt="" width="262"></span>
<h2 class="f-tit">....</h2>
<p class="f-cont">
......
</p>
<p class="f-time">2020-05-25</p>
</div>
</a>
</div>--> </div> </div>
<!-- 分页 -->
<div id="pagination1" class="pages fl"></div>
</div>

jq分页功能。的更多相关文章

  1. JQ分页功能

    HTML <div id='page'></div> <div id='con'></div> CSS span{width: 60px;height: ...

  2. jq分页插件,支持动态,静态分页的插件,简单易用。

    工作中经常要用到分页功能.为了方便封装了一个比较通用的分页插件开源出来了,简单易用. 官网:https://cwlch.github.io/Ch_Paging 下载地址:https://github. ...

  3. 项目中的一个分页功能pagination

    项目中的一个分页功能pagination <script> //总页数 ; ; //分页总数量 $(function () { // $("#pagination"). ...

  4. 简单封装分页功能pageView.js

    分页是一个很简单,通用的功能.作为一个有经验的前端开发人员,有义务把代码中类似这样公共的基础性的东西抽象出来,一来是改善代码的整体质量,更重要的是为了将来做类似的功能或者类似的项目,能减少不必要的重复 ...

  5. php对文本文件进行分页功能简单实现

    php对文本文件进行分页功能简单实现 <!DOCTYPE> <html> <head> <meta http-equiv="Content-type ...

  6. Asp.net MVC3表格共用分页功能

    在建立的mvc3项目中,在Razor(CSHTML)视图引擎下,数据会在表格中自动的生成,但分页没有好的控件实现,这里我们开发了设计了一个分页的模板,适合于没有数据提交和有数据提交的分页的分页. 第一 ...

  7. WinForm DataGridView分页功能

    WinForm 里面的DataGridView不像WebForm里面的GridView那样有自带的分页功能,需要自己写代码来实现分页,效果如下图: 分页控件  .CS: 1 using System; ...

  8. Net 分页功能的实现

    首先写一个接口   1 2 3 4 5 6 public interface IPagedList     {         int CurrentPageIndex { get; set; }   ...

  9. 自己封装的JS分页功能[用于搭配后台使用]

    * 2016.7.03 修复bug,优化代码逻辑 * 2016.5.25 修复如果找不到目标对象的错误抛出. * 2016.5.11 修复当实际页数(pageNumber)小于生成的页码间隔数时的bu ...

随机推荐

  1. SVG Tutorials

    SVG Tutorials W3C https://www.w3.org/TR/SVG11/ https://www.w3.org/TR/SVG2/ https://www.w3.org/TR/svg ...

  2. 星盟全球投资副总裁DENIEL SOIBIM:如何激发创造力

    丹尼尔·索比姆毕业于加州理工大学,2005年通过创建投资俱乐部对潜力公司进行天使投资,获得了美国Blue Run高层的重视,任营收专家评估师,为Blue Run项目提案做风险评估,09年与泰勒·亚当斯 ...

  3. 冷饭新炒:理解JWT的实现原理和基本使用

    前提 这是<冷饭新炒>系列的第五篇文章. 本文会翻炒一个用以产生访问令牌的开源标准JWT,介绍JWT的规范.底层实现原理.基本使用和应用场景. JWT规范 很可惜维基百科上没有搜索到JWT ...

  4. 02.Fancy Indexing

    import numpy as np x = np.arange(16) index = [3,5,8] x[index] array([3, 5, 8]) X = x.reshape(4,-1) X ...

  5. Redis 日志篇:系统高可用的杀手锏

    特立独行是对的,融入圈子也是对的,重点是要想清楚自己向往怎样的生活,为此愿意付出怎样的代价. 我们通常将 Redis 作为缓存使用,提高读取响应性能,一旦 Redis 宕机,内存中的数据全部丢失,假如 ...

  6. oracle中关键字的执行顺序

    执行顺序: from where group by having select order by ******当having/select 中出现组函数,那么其他没有被组函数修饰的列就必须出现下gro ...

  7. MySQL应用优化

    MySQL应用优化 目录 MySQL应用优化 1.数据库连接池 2.减少对MySQL的访问 3.负载均衡 4.MySQL查询缓存优化 5.MySQL如何使用缓存 6.MySQL内存管理以及优化 原则 ...

  8. CSS过渡约束的计算

    CSS过度约束性质 什么是CSS过度约束 当没有开启绝对定位或固定定位时 水平布局必须要满足以下等式 探寻能够设置成auto的CSS属性 等式不成立(过度约束)时的几种情况 当margin与width ...

  9. 看完我的笔记不懂也会懂----MongoDB

    MongoDb数据库学习 - 数据库的分类 - 数据库基本概念 - MongoDB常用指令 - MongoDB的CURD - sort({key:*[1,-1]}).limit(num).skip(n ...

  10. Android Studio|IntelliJ IDEA Git使用小技巧

    一 分支管理 1. 新建分支 在master的基础上创建新分支dev 2. 推送分支 将新建的分支dev推送到远程 3. 切换分支 4. 合并分支 当我们在dev分支完成代码修改并测试通过后 需要将d ...