js 分页
html代码:
<div id="paging_wrap" class="paging-wrap"></div>
css代码:
div#paging_wrap {
padding-right: 3px;
padding-left: 3px;
padding-bottom: 3px;
margin: 20px 0px;
padding-top: 15px;;
text-align: center
}
div#paging_wrap a {
border: #dedfde 1px solid;
padding-right: 6px;
background-position: 50% bottom;
padding-left: 6px;
padding-bottom: 2px;
color: #0061de;
margin-right: 3px;
padding-top: 2px;
text-decoration: none
}
div#paging_wrap a:hover {
border: #000 1px solid;
background-image: none;
color: #fff;
background-color: #0061de
}
div#paging_wrap a:active {
border-right: #000 1px solid;
border-top: #000 1px solid;
background-image: none;
border-left: #000 1px solid;
color: #fff;
border-bottom: #000 1px solid;
background-color: #0061de
}
div#paging_wrap span.current {
padding-right: 6px;
padding-left: 6px;
font-weight: bold;
padding-bottom: 2px;
color: #ff0084;
margin-right: 3px;
padding-top: 2px
}
div#paging_wrap span.disabled {
padding-right: 6px;
padding-left: 6px;
padding-bottom: 2px;
color: #adaaad;
margin-right: 3px;
padding-top: 2px
}
js代码:
//事件基础类
(function() {
var EventBase = function() { this.addListener = function(type, listener) {
getListener(this, type, true).push(listener);
} this.removeListener = function(type, listener) {
var listeners = getListener(this, type);
for (var i = 0; i < listeners.length; i++) {
if (listeners[i] == listener) {
listeners.splice(i, 1);
return;
}
}
} this.fireEvent = function(type) {
var listeners = getListener(this, type), r, t, k;
if (listeners) {
k = listeners.length;
while (k--) {
t = listeners[k].apply(this, arguments);
if (t !== undefined) {
r = t;
}
}
}
if (t = this['on' + type.toLowerCase()]) {
r = t.apply(this, arguments);
}
return r;
}
} function getListener(obj, type, force) {
var allListeners;
type = type.toLowerCase();
return ((allListeners = (obj.__allListeners || force
&& (obj.__allListeners = {}))) && (allListeners[type] || force
&& (allListeners[type] = [])));
} window['EventBase'] = EventBase;
})(); // 分页类
var Page = function(pageCanvas) {
this.recordCount;
this.pageSize;
this.numericButtonCount;
this.pageCanvas = pageCanvas;
this.pageIndex = 1;
} Page.prototype = new EventBase(); Page.prototype.getPageHtml = function() {
this.pageCount = Math.ceil(this.recordCount / this.pageSize);
var prev = this.pageIndex == 1 ? " <span class='disabled'>上一页</span>"
: " <span class=''><a href='javascript:;' pageindex='"
+ (this.pageIndex - 1) + "'>上一页</a></span> ";
var next = this.pageCount <= this.pageIndex ? " <span class='disabled'>下一页</span>"
: " <span class='current'><a href='javascript:;' pageIndex='"
+ (this.pageIndex + 1) + "'>下一页</a></span>";
var first = this.pageIndex == 1 ? "<span class='current'>1</span>..."
: "<span><a href='javascript:;' pageindex='1'>1</a></span>...";
var last = this.pageCount <= this.pageIndex ? "...<span class='current'>"
+ this.pageCount + "</span>"
: "...<span><a href='javascript:;' pageindex='" + (this.pageCount) + "'>"
+ this.pageCount + "</a></span>";
var pageStr = "" var pageMathIndex = Math.floor(this.numericButtonCount / 2);
var pageStartIndex;
var pageEndIndex; if (this.pageCount < this.numericButtonCount) {
pageStartIndex = 1
pageEndIndex = this.pageCount;
} else {
if (this.pageCount - pageMathIndex < this.pageIndex) {
pageStartIndex = this.pageCount - this.numericButtonCount + 1;
pageEndIndex = this.pageCount;
} else {
if (this.pageIndex - pageMathIndex < 1) {
pageStartIndex = 1;
pageEndIndex = this.numericButtonCount;
} else {
pageStartIndex = this.pageIndex - pageMathIndex;
pageEndIndex = this.pageIndex + pageMathIndex;
}
} } for (var i = pageStartIndex; i <= pageEndIndex; i++) {
if (this.pageIndex == i)
pageStr += " <span class='current'>" + i + "</span>"
else
pageStr += " <span><a href='javascript:;' pageindex='" + i + "'>" + i
+ "</a></span>";
} if (pageStartIndex == 1)
first = '';
if (pageEndIndex == this.pageCount)
last = '';
// pageStr = first + prev + pageStr + next + last;
pageStr = prev + first + pageStr + last + next;
return pageStr;
} Page.prototype.onPageChanged = function(pageIndex) {
this.pageIndex = pageIndex;
this.fireEvent('pageChanged');
} Page.prototype.pageEvent = function(page) {
this.onclick = function(e) {
e = e || window.event;
t = e.target || e.srcElement;
if (t.tagName == "A")
page.onPageChanged(parseInt(t.getAttribute("pageindex")));
}
} Page.prototype.render = function() {
var pageCanvas = document.getElementById(this.pageCanvas);
pageCanvas.innerHTML = this.getPageHtml();
this.pageEvent.call(pageCanvas, this);
} Page.prototype.initialize = function() {
this.onPageChanged(this.pageIndex);
}
function pageInit() {
var p = new Page( 'paging_wrap' );
//总记录数
p.recordCount = selectDtzyCount();
//分页按扭数
p.numericButtonCount = 10;
//每页记录数
p.pageSize = 5;
//当点击分页时触发此事件。 一些外加的效果可以放在此处, 如加载数据
p.addListener( 'pageChanged', function() {
//列表内容
init(p.pageIndex, p.pageSize);
p.render();
} );
p.initialize();
}
js 分页的更多相关文章
- js分页小结
今天解决了JS分页的问题1 页码 给每页的内容套一个相同的类名 通过选择器加上.length或者.size() 来获得总页数2当前页的页码可以使用each(function(index,DOMsss ...
- 自己封装的JS分页功能[用于搭配后台使用]
* 2016.7.03 修复bug,优化代码逻辑 * 2016.5.25 修复如果找不到目标对象的错误抛出. * 2016.5.11 修复当实际页数(pageNumber)小于生成的页码间隔数时的bu ...
- jsp、js分页功能的简单总结
一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要.分 ...
- 一个重构的js分页类
// JavaScript Document /**//** * js分页类 * @param iAbsolute 每页显示记录数 * @param sTableId 分页表格属性ID值,为Strin ...
- 面向对象版js分页
基于前一个js分页,我将代码改成一个面向对象版的js分页,代码如下 http://peng666.github.io/blogs/pageobj <!DOCTYPE html> <h ...
- 纯js分页代码(简洁实用)
纯js写的分页代码. 复制代码代码如下: //每页显示字数 PageSize=5000; //分页模式 flag=2;//1:根据字数自动分页 2:根据[NextPage]分页 //默认页 start ...
- JS分页 + 获取MVC地址栏URL路径的最后参数
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...
- 浅谈js分页的几种方法
一个项目中必然会遇到分页这种需求的,分页可以使数据加载更合理,也让页面显示更美观,更有层次感!那么js分页到底如何实现呢?下面我就来讲一下三种循序渐进的方法 1.自己纯手写分页 更深入的去理解分页的意 ...
- JS分页条插件
目标 制作js分页导航jq插件,用于无刷新分页或者刷新分页 实现目标参考京东和天猫的分页条. 有四个固定按钮,前页码,后页码,首页,末页. 程序关键点在于计算中间页面的起止位置.逻辑是以当前页码为参照 ...
- js分页实例
js分页实例 案例1 1.js_pageusers.html <!DOCTYPE html> <html> <head> <title>js_pageu ...
随机推荐
- preg_match一些问题
<?php$string = 'The quick brown fox jumps over the lazy dog.';$patterns = array();$patterns[0] = ...
- set<pair<int,int> >的用法
例题链接:https://vjudge.net/contest/236677#problem/D 题意:首先输入两个数字n,m.n表示有n张桌子,编号从1到n,m表示有m个操作, 然后接下来一行有n个 ...
- vue 实现多选
v-model <template> <!--用户页面-选择关注--> <div class="follow"> <h4>选择关注& ...
- [Java学习]集合
一. Collection与Map继承结构图 Collection继承结构图 实现Collection接口的类只能存储引用类型!所以set.add(10)会有自动装箱的过程,把int 转成 Integ ...
- 【转自牛客网】C++类职位校招
作者:./a.out链接:https://www.nowcoder.com/discuss/14022来源:牛客网 话说在牛客网上混迹了半年,也没啥拿的出手的贡献.现在基本上自己的校招生涯要告一段落, ...
- 16-acrobat por 简单使用指南
用于pdf编辑,这里我主要讲下图片的切割和保存,以及合并: 切割选中区域双击 合并的话,在编辑界面选中对象,复制,在另一个pdf的编辑界面粘贴,并挪动位置:
- pyinstller的安装
下载:http://www.pyinstaller.org/ 解压到目录 切换到python目录 执行命令: python.exe D:\Download\PyInstaller-2.1\setup. ...
- 页面练习my blog day51
html端: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- if 循环的深入理解 哈希表的一种应用
哈希表的值作为一个颜色容器,值默认为标识1, 表示未曾用过,若用过标识为0: 1: 程序第一步 遍历哈希表,查找标识为1 未曾用过的颜色 我用了这个: string colorno_us ...
- JAVA动手动脑及课后作业
1.查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 运行结果 true true false 原因 1)在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0, ...