//css
<style>
* {
padding:;
margin:;
list-style: none;
}
.wrapper {
width: 100%;
cursor: pointer;
}
.wrapper > li, .wrapper > span{
display: inline-block;
border: 1px solid black;
margin-right: 10px;
padding: 5px;
}
.tabNumber.active{
background-color: aqua;
color: #fff;
}
</style>

 
//html
<ul class="wrapper"></ul>
<script src='jquery.js'></script>
<script src='turnPage.js'></script>
<script> $('.wrapper').turnPage({ curPage: 5, allPage: 10, changePage(page) { console.log(page) } }) </script>

 
//turnPage.js(function ($) {
function turnPage(options) {
this.wrap = options.wrap //父级元素
this.curPage = options.curPage //当前页
this.allPage = options.allPage //总页数
this.fillHtml()
this.bindEvent()
this.changePage = options.changePage //回调函数
}
turnPage.prototype.fillHtml = function () {
//清空父元素内所有子元素
     $(this.wrap).empty()
      //添加上一页
if (this.curPage > 1) {
$(this.wrap).append('<li class="prev-page">上一页</li>')
}
      //添加第一页
if (this.curPage - 2 > 1) {
$(this.wrap).append('<li class="tabNumber">1</li>')
}
if (this.curPage - 2 > 2) {
$(this.wrap).append('<span>...</span>')
}
for (var i = this.curPage - 2;i < this.curPage + 2; i ++) {
if (i > 0 && i <= this.allPage) {
if (i === this.curPage) {
$(this.wrap).append('<li class="tabNumber active">'+ i +'</li>')
} else {
$(this.wrap).append('<li class="tabNumber">'+ i +'</li>')
} }
}
if (this.curPage + 1 < this.allPage) {
$(this.wrap).append('<span >...</span>')
}
if (this.curPage + 2 < this.allPage) {
$(this.wrap).append('<li class="next-page">下一页</li>')
}
}
turnPage.prototype.bindEvent = function () {
var self = this
$('.prev-page', this.wrap).click(function () {
if (self.curPage > 1) {
self.curPage--
self.change()
}
})
$('.next-page',this.wrap).click(function () {
if(self.curPage < self.allPage) {
self.curPage++
self.change()
}
})
$('.tabNumber', this.wrap).click(function (e) {
self.curPage = parseInt($(this).text())
self.change()
})
}
turnPage.prototype.change = function () {
this.fillHtml()
this.bindEvent()
this.changePage(this.curPage)
}
$.fn.extend({
turnPage: function (options) {
options.wrap = this
new turnPage(options)
return this
}
})
})(window.jQuery)


效果图: 样式比较简单

翻页插件 jquery的更多相关文章

  1. 移动端翻页插件dropload.js(支持Zepto和jQuery)

    一. 声明 代码来源:github上的dropload项目. 二. 问题 dropload.js提供了最基本的上拉翻页,下拉刷新功能.对于由服务端一次返回所有数据的情况基本通用. 但是,需求往往不是服 ...

  2. jQuery支持mobile的全屏水平横向翻页效果

    这是一款支持移动手机mobile设备的jQuery全屏水平横向翻页效果插件. 该翻页插件能够使页面在水平方向上左右全屏翻动,它支持手机触摸屏,支持使用鼠标滚动页面. 整个页面过渡平滑,效果很不错. 在 ...

  3. jQuery中turn.js(翻页效果)学习笔记

    Turn.js是一个内置的jQuery翻页插件1 html中引入<script type="text/javascript" src="js/turn.js&quo ...

  4. 翻书插件:bookblock.js

    BookBlock 是一个 jQuery插件,用来制作带有翻页效果的小书册.可以用任何形式的内容,比如图像或文本.插件会在翻页时利用变形模拟手工翻页,并产生重叠的阴影以达到更逼真的效果. 基本页面 & ...

  5. 6个超炫酷的HTML5电子书翻页动画

    相信大家一定遇到过一些电子书网站,我们可以通过像看书一样翻页来浏览电子书的内容.今天我们要分享的HTML5应用跟电子书翻页有关,我们精选出来的6个电子书翻页动画都非常炫酷,而且都提供源码下载,有需要的 ...

  6. 10款无限滚动自动翻页jquery插件

    2012年3月29日 无限滚动自动翻页可以说是web2.0时代的一项堪称伟大的技术,它让我们在浏览页面的时候只需要把滚动条拉到网页底部就能自动显示下一页的 结果,改变了一直以来只能通过点击下一页来翻页 ...

  7. Slider 滚动条 Pagination分页插件 JS Ajax 数据范围筛选 加载 翻页 笔记

    入职以后的第二个任务  根据用户所选的价格范围 筛选数据 修复BUG - 筛选数据后 总数没有更新.列表显示错误.翻页加载错误 用到的一些知识点 jquery插件系列之 - Slider滑块 max ...

  8. 15个最佳jQuery的翻页书效果的例子

    在这里,你会发现15的jQuery的翻页书的插件,提供了良好的页面翻转的经验,并帮助创建类似书本的效果. jQuery的增添了一道亮丽的过渡到实际的页面在一本书或杂志HTML5. 1. BookBlo ...

  9. vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件

    vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源 ...

随机推荐

  1. mongo 改数据库名称

    用命令 db.copyDatabase('old_name', 'new_name') 可以备份出一个新的数据库. 然后  use old_name 并db.dropDatabase() 即可删除旧的 ...

  2. js解释器

    又名js引擎 JavaScript是解释型语言,这就是说它无需编译,直接由JavaScript引擎直接执行. 既然说到了解释型语言,那么我们就来分别以下解释型语言和编译型语言的差别: 编译型语言:程序 ...

  3. Apache Kafka(五)- Safe Kafka Producer

    Kafka Safe Producer 在应用Kafka的场景中,需要考虑到在异常发生时(如网络异常),被发送的消息有可能会出现丢失.乱序.以及重复消息. 对于这些情况,我们可以创建一个“safe p ...

  4. CentOS6.5-6.9安装 docker

    安装docker yum -y install docker-io 备注:查看内核版本uname -r ;卸载docker版本命令 yum remove docker 更改配置文件 vim /etc/ ...

  5. nmon +java nmon Alalizy agent 动态交互监控

    下载地址:1. Download and install nmon. - for linux platform, you can download form: http://nmon.sourcefo ...

  6. python入门(十九讲):多进程

    1.进程概念 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动.是系统进行资源分配和调度的基本单位,是操作系统结构的基础. 狭义定义:进程是正在运行的程序的实例. 在早期面向进程设 ...

  7. 淘宝 Api 查询手机号

    https://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=13834782535 淘宝 Api 查询手机号

  8. JavaWeb01-动态网页

    01.动态网页的优势 动态网页是在服务器端运行的程序!随不同用户,不同条件 返回不同的结果! 001.交互性:网页会根据用户的要求和选择而动态的改变和现实网页内容! 002.自动更新:无需改变页面的代 ...

  9. 第二十篇 Linux条件测试语句相关知识点介绍

      条件测试语句的格式如下: [ 条件表达式 ]        # 条件表达式两侧各有一个空格 按测试对象不同,条件测试语句共分为4中类型: 文件测试语句 逻辑测试语句 整数值比较语句 字符串比较语句 ...

  10. sqli-libs(38-41(堆叠注入)关)

    补充知识:堆叠注入(Stacked injections) 从名词的含义就可以看到应该是一堆sql语句(多条)一起执行.而在真实的运用中也是这样的,我们知道在mysql中,主要是命令行中,每一条语句结 ...