说到HTML5和jquery上的分页问题,优秀的分页插件网上一抓一大把,然而同时适合兼容在Ipad和手机端的网站分页却不是特别多。

或许有人会说,触屏现在流行下拉底部后加载下一页内容,类似微博和QQ空间那种模式,分页过时了。或许,阅读到底部后顺手点一下“下一页”和无需操作自动加载内容继续阅读,这小小的一点会给用户带来很不同的微妙感受。

可以肯定的是,当要展示数据量较大时,一定会用到分页的。一是给用户内容多少的预期,二是可以给浏览者提供一个停顿。如果用户看一篇文章已经翻了十几屏,滚动条还是停留在浏览器中间靠上的位置,那该多绝望。最重要的当然还是分页的跳转功能,如果有600页的内容,昨天看到了300页,现在要301开始看,你敢用下拉加载翻300屏给我看看?

插件信息

回到正题,jqPagination 是一个简单易用的轻量级 jquery 分页插件,其使用了 HTML5 和 CSS3 技术来实现。此插件提供了几个参数设置选项,通过简单的配置即可生成分页控件。此外,它的外观样式是可自定义的,扩展性很强,自带的分页功能包括上一页,下一页,首页,末页和直接跳到某页(中间是输入框)。

官网:http://beneverard.github.com/jqPagination/

Demo:http://beneverard.github.com/jqPagination/#demo

默认样式如下:

一直觉得,跳页是很重要的功能,尤其对于页数庞大的情况,完爆一些看起来漂亮,却不带跳页的插件。例如:

这种列出来好几个页码的,一来,手机屏幕有限,会显得很拥挤;二来,还是那句,你翻到3000页给我看看??

再回到正题,jqPagination的使用步骤如下:

  1. 添加 jQuery 类库、jqPagination 插件的 JS 和 CSS 文件

<link rel="stylesheet" href="jqpagination.css"/>
<script src="jquery-1.6.2.min.js"></script>
<script src="jquery.jqpagination.min.js"></script>

  2. 再需要如下HTML

<div class="pagination">
  <a href="#" class="first" data-action="first">&laquo;</a>
  <a href="#" class="previous" data-action="previous">&lsaquo;</a>
  <input type="text" readonly="readonly" data-max-page="40" />
  <a href="#" class="next" data-action="next">&rsaquo;</a>
  <a href="#" class="last" data-action="last">&raquo;</a>
</div>

  3. 最后初始化插件

$('.pagination').jqPagination({
  link_string : '/?page={page_number}',
  current_page: 5, //设置当前页 默认为1
  max_page : 40, //设置最大页 默认为1
  page_string : '当前第{current_page}页,共{max_page}页',
  paged : function(page) {
      //回发事件。。。
      }
});

参数配置

current_page 
初始化设置当前的页码,默认值为:1

max_page
设置最大的页数,这个往往是从数据库中读取的数据的 count 总数来填充的

page_string 
文本框中显示的页码样式。

回调函数
当我们点击页码跳转到相应页时就要用到回调函数了,格式如下:

paged: function(page) {
    //点击页码要做的操作
        //如果是无刷新分页的话,就可以写成 getDataByPage(page) 这里 getDataByPage 是一个从服务端获取指定页数据的方法
        //如果是一般动态页或者是静态页的话,就直接跳转到相应的页面   location.href="view.aspx?id="+page  或者 location.href="view-"+page+".html"
}

再说样子

插件的样式比较欧式风格,可能天朝国民看着不习惯,作为前端开发人员,整个容的能力还是有的。这样看起来是不是亲切多了。320 X 480的小屏机也毫无压力。

浏览器兼容

经亲测,在电脑和移动端主流的浏览器都没有问题,但注意如果中文化了,就要做下小改动,适应某些浏览器自带的一些牛(qi)逼(pa)功能,例如UC。

UC浏览器自带了预读下一页内容的功能,会扫描页面带有下页,下一页,下一章等关键字的链接,并提前加载链接的内容,到达你翻页时秒开下页。

那么问题来了,这插件原来的使用方式中,<a href="#" class="first" data-action="first">&laquo;</a>, 链接的地址其实加载了配置中link_string : '/?page={page_number}',的内容,就以官网的demo为例,鼠标放到下一页按键时,可以看到它加载的地址其实是不对的。

它需要点击后才生成一个正确的地址并跳转,但UC没管这么多,你写啥地址它直接读啥地址内容,有些版本甚至加载了下一页内容后直接覆盖掉你下页的按键事件,跳到了错误的地址上。。要避免这情况也很简单,只要不偷懒,在<a href="#" 中写上真实的地址就行。。

再吐槽一下,UC浏览器预读完成后,还会不忘强制改你颜色样式,给你链接套个绿帽什么的,也是醉了。。

a[ucautopagerstatus="complete"] {
  1. position: relative;
  2. color: rgb(0, 128, 0);
}

带个绿帽整个样子清(dou)新(bi)了。。

下载地址

官方下载:https://github.com/beneverard/jqPagination/zipball/master

触屏版轻量级分页插件jqPagination分享的更多相关文章

  1. HTML5触屏版多线程渲染模板技术分享

    前言: 了解js编译原理的屌丝们都知道,js是单线程的,想当年各路神仙为了实现js的多线程,为了解决innerHTML输出大段HTML卡页面的顽疾,纷纷设计了诸如假冒的“多线程“实现,我自己也在写开源 ...

  2. 淘宝网触屏版 - 学习笔记(1 - 关于meta)

    注:本文是学习笔记,并不是教程,所以会有很多我不理解或猜测的问题,也会有不尽详实之处,望见谅. <meta charset="utf-8"> <meta cont ...

  3. 淘宝网触屏版 - 学习笔记(0 - 关于dpr)

    注:本文是学习笔记,并不是教程,所以会有很多我不理解或猜测的问题,也会有不尽详实之处,望见谅. 对于pc端网页设计师来说,移动端的网页制作,我之前只是简单的加了一个 <meta name=&qu ...

  4. 手机触屏滑动图片切换插件swiper.js

    今天给大家分享一款手机触屏滑动图片切换插件swiper.js是一款swiper手机触屏滑动图片幻灯片,适合各种尺寸.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div ...

  5. 解决电脑访问Discuz!手机版(支持触屏版)

    discuz电脑访问手机版的方法现在需要来修改一下2个文件,即可用电脑浏览discuz的手机版本:找到./source/function/function_core.php 文件,查找 : funct ...

  6. WebApp触屏版网站开发要点

    所谓的触屏版网站其实也是WebApp的一种展示形式,主要是依赖HTML+CSS+Javascript这三个关键因素来实现,相比较原生客户端程序来说优点就是开发周期短.升级简单.维护成本低,因为从根本上 ...

  7. WAP、触屏版网站及APP的区别

     1.电脑版网站: 电脑版网站是指用户通过台式或者笔记本电脑浏览器打开的网站,也就是我们平时上网所访问的网站.其支持和兼容IE6.IE7.IE8.IE9.IE10.Firefox.Chrome等各种主 ...

  8. jQuery 分页插件 jqPagination的使用

    jqPagination 是一个简单易用的轻量级 jQuery分页插件,其使用了 HTML5 和 CSS3 技术来实现.此插件提供了几个参数设置选项,通过简单的配置即可生成分页控件.此外,它的外观样式 ...

  9. 如何关闭win7的ps/2兼容鼠标(触屏版)

    买了一个新电脑联想ThinkPad E555 可是刚拿到是个win10 的系统,用习惯了win7,win0不太好用, 然后帮我刷成了win7,之后一切都好,性能也是让我很满意,但是却关不掉触控板,于是 ...

随机推荐

  1. 1.2 the structure of a compiler

    Compiler 1.2 the structure  of a compiler Compiler : analysis and synthesis syntactically  语法上的 sema ...

  2. Bezier(贝塞尔曲线)

    CDC::PolyBezierBOOL PolyBezier( const POINT* lpPoints, int nCount ); 和 曲线原理及多段曲线连接处如何光滑连接:第一段曲线要有4个点 ...

  3. Python-OpenCV中的resize()函数

    改变图像大小意味着改变尺寸,无论是单独的高或宽,还是两者.也可以按比例调整图像大小. 这里将介绍resize()函数的语法及实例. 语法 函数原型 cv2.resize(src, dsize[, ds ...

  4. 剑指offer55 字符流中第一个不重复的字符(最典型错误)

    典型并且基础的错误: class Solution { public: //Insert one char from stringstream void Insert(char ch) { ) res ...

  5. 读书笔记-《深入理解Java虚拟机:JVM高级特性与最佳实践》

    目录 概述 第一章: 走进Java 第二章: Java内存区域与内存溢出异常 第三章: 垃圾收集器与内存分配策略 第四章: 虚拟机性能监控与故障处理 第五章: 调优案例分析与实战 第六章: 类文件结构 ...

  6. 说说TCP的三次握手

    在说这个问题之前,先说说IP协议和TCP协议 问题:IP协议能做什么?不能做什么? 我们都知道IP协议是无连接的通信协议,它不会占用两个正在通信的计算机的通信线路,这样就降低了IP对网络传输中的需求, ...

  7. Bootstrap历练实例:标签页内的下拉菜单

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  8. SQL Server数据库字段类型说明

    SQL Server数据库字段类型说明 目前Sql Server 数据库一共有X个字段类型,大体分为9类,分别是字符串类型.二进制码字符串数据类型.Unincode字符串数据.整数类型.精确数据类型. ...

  9. 洛谷 P5015 标题统计

    第一道题很简单,标签:字符串.模拟. 只需要一个判断去除空格就对了: if(a[i]!=' ' && a[i]!='\n') v++; code: #include<iostre ...

  10. 浅谈 MySQL 中优化 SQL 语句查询常用的 30 种方法

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...