//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. 数据存储 csv

    # # 保存csv格式的数据import csv csvFile = open('test.csv','w+',newline='') #文本方式可读写 try: writer = csv.write ...

  2. 在同一个tomcat下部署多个springboot项目时,springboot项目无法正常启动的问题

    这个问题是基于,不使用springboot内置的tomcat会产生(即使用自己的tomcat时). 今天在部署springboot项目的时候遇到了一个问题,怎么部署都访问不了,在网上查了很多原因,什么 ...

  3. MyBatis(8)——联表多对一的处理

    xml说明: <!--column不做限制,可以为任意表的字段,而property须为type 定义的pojo属性--> <resultMap id="唯一的标识" ...

  4. python开发基础01-字符串操作方法汇总

    字符串 Python对字符串的处理内置了很多高效的函数,非常方便功能很强大. "hello world" 字符串七种常用功能: 连接和合并 + join 移除空白  strip 分 ...

  5. mysql 数据库中的模式替换

    1, REPLACE 使用 -UPDATE tbl_name SET field_name = REPLACE(field_name,old_str,new_str) WHERE conditions ...

  6. django template 模板

    九.Template模板 Template 模板是根据view传过来数据在html展示的功能,典型python 模板jinjia2库提供丰富的上下文展示func 创建template位置在项目下与ap ...

  7. 「JSOI2015」最小表示

    「JSOI2015」最小表示 传送门 很显然的一个结论:一条边 \(u \to v\) 能够被删去,当且仅当至少存在一条其它的路径从 \(u\) 通向 \(v\) . 所以我们就建出正反两张图,对每个 ...

  8. 笔记本电脑插上耳机声音依然外放解决方法 为什么插入HDMI线,电脑的音响就没有声音了

    笔记本电脑插上耳机声音依然外放解决方法: 下载一个驱动大师,安装声卡驱动.(驱动人生安装的驱动有可能不能用) 为什么插入HDMI线,电脑的音响就没有声音了 参考:https://zhidao.baid ...

  9. php相关问题学习(以备面试)

    1.原味地址:[ http://www.yiichina.com/tutorial/57 ] 注:本文转自 http://www.icultivator.com/p/5535.html 整理了一份PH ...

  10. Could not set property of class with value There is no setter for property named

    检查entity中类的属性与MAPPER中的resultMap属性是否一致