jquery-ul-li实现分页功能 转载仅供交流
js文件代码:
(function($){
$.fn.Pages = function(options){
var opts = $.extend({},$.fn.Pages.defaults, options);
return this.each(function(){
var $this = $(this);
var $PagesClass = opts.PagesClass; // 分页元素
var $AllMth = $this.find($PagesClass).length; //总个数
var $Mth = opts.PagesMth; //每页显示个数
var $NavMth = opts.PagesNavMth; // 导航显示个数
// 定义分页导航
var PagesNavHtml = "<div class=\"Pagination\"><a href=\"javascript:;\" class=\"homePage\">首页</a><a href=\"javascript:;\" class=\"PagePrev\">上一页</a><span class=\"Ellipsis\"><b>...</b></span><div class=\"pagesnum\"></div><span
class=\"Ellipsis\"><b>...</b></span><a href=\"javascript:;\" class=\"PageNext\">下一页</a><a href=\"javascript:;\" class=\"lastPage\">尾页</a><cite class=\"FormNum\">直接到第<input type=\"text\" name=\"PageNum\" id=\"PageNum\">页</cite><a href=\"javascript:;\" class=\"PageNumOK\">确定</a></div>";
/*默认初始化显示*/
if($AllMth > $Mth){
//判断显示
var relMth = $Mth - 1;
$this.find($PagesClass).filter(":gt("+relMth+")").hide();
// 计算数量,页数
var PagesMth = Math.ceil($AllMth / $Mth); // 计算页数
var PagesMthTxt = "<span>共<b>"+$AllMth+"</b>条,共<b>"+PagesMth+"</b>页</span>";
$this.append(PagesNavHtml).find(".Pagination").append(PagesMthTxt);
// 计算分页导航显示数量
var PagesNavNum = "";
for(var i=1;i<=PagesMth;i++){
PagesNavNum = PagesNavNum + "<a href=\"javascript:;\">"+i+"</a>";
};
$this.find(".pagesnum").append(PagesNavNum).find("a:first").addClass("PageCur");
//判断是否显示省略号
if($NavMth < PagesMth){
$this.find("span.Ellipsis:last").show();
var relNavMth = $NavMth - 1;
$this.find(".pagesnum a").filter(":gt("+relNavMth+")").hide();
}else{
$this.find("span.Ellipsis:last").hide();
};
/*默认显示已完成,下面是控制区域代码*/
//跳转页面
var $input = $this.find(".Pagination #PageNum");
var $submit = $this.find(".Pagination .PageNumOK");
//跳转页面文本框
$input.keyup(function(){
var pattern_d = /^\d+$/; //全数字正则
if(!pattern_d.exec($input.val())) {
alert("友情提示:\n\n请填写正确的数字!");
$input.focus().val("");
return false
};
});
//跳转页面确定按钮
$submit.click(function(){
if($input.val() == ""){
alert("友情提示:\n\n请填写您要跳转到第几页!");
$input.focus().val("");
return false
}if($input.val() > PagesMth){
alert("友情提示:\n\n您跳转的页面不存在!");
$input.focus().val("");
return false
}else{
showPages($input.val());
};
});
//导航控制分页
var $PagesNav = $this.find(".pagesnum a"); //导航指向
var $PagesFrist = $this.find(".homePage"); //首页
var $PagesLast = $this.find(".lastPage"); //尾页
var $PagesPrev = $this.find(".PagePrev"); //上一页
var $PagesNext = $this.find(".PageNext"); //下一页
//导航指向
$PagesNav.click(function(){
var NavTxt = $(this).text();
showPages(NavTxt);
});
//首页
$PagesFrist.click(function(){
showPages(1);
});
//尾页
$PagesLast.click(function(){
showPages(PagesMth);
});
//上一页
$PagesPrev.click(function(){
var OldNav = $this.find(".pagesnum a[class=PageCur]");
if(OldNav.text() == 1){alert("友情提示:\n\n不要再点啦~已经是首页啦!");}else{
var NavTxt = parseInt(OldNav.text()) - 1;
showPages(NavTxt);
};
});
//下一页
$PagesNext.click(function(){
var OldNav = $this.find(".pagesnum a[class=PageCur]");
if(OldNav.text() == PagesMth){alert("友情提示:\n\n不要再点啦~已经是最后一页啦!");}else{
var NavTxt = parseInt(OldNav.text()) + 1;
showPages(NavTxt);
};
});
// 主体显示隐藏分页函数
function showPages(page){
$PagesNav.each(function(){
var NavText = $(this).text();
if(NavText == page){
$(this).addClass("PageCur").siblings().removeClass("PageCur");
};
});
//显示导航样式
var AllMth = PagesMth / $NavMth;
for(var i=1;i<=AllMth;i++){
if(page > (i*$NavMth)){
$PagesNav.filter(":gt("+(i*$NavMth-1)+")").show();
$PagesNav.filter(":gt("+(i*$NavMth-1+$NavMth)+")").hide();
$PagesNav.filter(":lt("+(i*$NavMth)+")").hide();
$this.find("span.Ellipsis:first").show();
};
if(page <= $NavMth){
$PagesNav.filter(":gt("+($NavMth-1)+")").hide();
$PagesNav.filter(":lt("+$NavMth+")").show();
$this.find("span.Ellipsis:first").hide();
};
};
// 显示内容区域
var LeftPage = $Mth * (page-1);
var NowPage = $Mth * page;
$this.find($PagesClass).hide();
$this.find($PagesClass).filter(":lt("+(NowPage)+")").show();
$this.find($PagesClass).filter(":lt("+(LeftPage)+")").hide();
};
}; //判断结束
}); //主体代码
};
// 默认参数
$.fn.Pages.defaults = {
PagesClass:'.item', //需要分页的元素
PagesMth:4, //每页显示个数
PagesNavMth:5 //显示导航个数
};
$.fn.Pages.setDefaults = function(settings) {
$.extend( $.fn.kkPages.defaults, settings );
};
})(jQuery);
HTML文件代码:
<script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>
<script src="script/jquery.Pages.js"></script>
<script>
$(function(){
$('.pagelist').Pages({
PagesClass:'.item', //需要分页的元素
PagesMth:4, //每页显示个数
PagesNavMth:5 //显示导航个数
});
$('.newslist').Pages({
PagesClass:'li', //需要分页的元素
PagesMth:5, //每页显示个数
PagesNavMth:5 //显示导航个数
});
});
</script>
添加分页导航css样式
/* Pages */
.Pagination{float: right;height: 55px;_height: 45px; line-height: 20px;margin-right: 15px;_margin-right: 5px; color:
#565656;margin-top: 10px;_margin-top: 20px; clear:both;}
.Pagination span{margin-right: 5px;display: block;float: left;margin-left: 5px;}
.Pagination span b{padding: 0 2px;}
.Pagination div {float:left}
.Pagination a{ font-size: 12px;text-decoration: none;display: block;float: left;color: #565656;border: 1px solid #cacaca;height: 20px;line-height: 20px;padding: 0 10px;margin: 0 2px;}
.Pagination .Ellipsis {line-height: 32px;overflow: hidden; display:none;}
cite.FormNum{display: block;float: left;line-height: 20px;height: 20px; font-style: normal; padding-left:10px;}
#PageNum{ color:#777;width: 30px;height: 20px;line-height: 20px; border: 1px solid #cacaca; margin:0 5px; text-align:center;}
.Pagination a:hover,.Pagination a.PageCur{background-color: #ee6600;border: 1px solid #d64c01;color: #ffffff; }
调用方法:
$('.newslist').Pages({
PagesClass:'li', //需要分页的元素
PagesMth:5, //每页显示个数
PagesNavMth:5 //显示导航个数
})
jquery-ul-li实现分页功能 转载仅供交流的更多相关文章
- jquery中对于ul>li列表分页。学习记录
这个是很简单的一种分页,只能对列表进行分页.为了开发有可能需要用到记录下来 Html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T ...
- jquery - ul li click 无响应
搞了很久, 发现对应jquery来说, 动态产生的ul li(其实不只是这个, 还有 table td等), 直接使用 $("#ul_div>li").click(funct ...
- jQuery实现的简单分页功能的详细解析
分页功能在项目开发中不可或缺,老司机操作起来就和呼吸一样简单,新手恐怕就会吃力一些. 今天我回顾了一下具体的操作步骤,决定详细的分析一下每一步的实现目的及原理. 我们会创建一个简单的json文件来模拟 ...
- visio2013 激活工具,仅供交流学习
visio2013激活软件 环境是 win7, 64 bit 装了 visio 2013 , 可以却不能用它来画图,在网上找了一些破解工具,大都不能解决问题.网上不靠谱的广告型文章太多了 所幸,终于找 ...
- jQuery入门[1]-构造函数【转载】
最近看了一些jquery的进阶教程,感觉很不错,与大家分享下! jQuery——构造函数 ◦体积小(v1.2.3 15kb)◦丰富的DOM选择器(CSS1-3 + XPath) ◦跨浏览器(IE6,F ...
- 【jQuery 分页】jQuery分页功能的实现
自写的jQuery实现分页功能的分页组件: 功能效果如下: 分页组件就是上图中的三部分, 分别放在表格上部 和下部 . 其中, 1>>>页面的代码如下: product.jsp 其 ...
- jQuery实现网页放大镜功能 转载
京东等电商网站中可以对商品进行放大观察,本文要实现的就是模仿这个放大镜功能,大致效果如下图所示: 简要说明实现思路: 1.原图窗口与放大窗口插入的是同一个图片,不过原图窗口的图片要适当缩小,放大窗口图 ...
- jPList – 实现灵活排序和分页功能的 jQuery 插件
jPList 是一个灵活的 jQuery 插件,可以用于任何 HTML 结构的排序,分页和筛选.它支持的数据源包括:PHP + MySQL,ASP.NET + SQL Server,PHP + SQL ...
- jQuery图片无缝滚动JS代码ul/li结构
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- ERP免费模拟上线
为了让更多中小企业在应用管理软件之前可以评估企业执行力和规避实施风险,普实在云端部署了AIO5的试用环境,免费供大家导入实际数据进行学习和测试.因资源有限,申请要求如下: 1.填写申请信息并加盖公章: ...
- CSS3形变——transform与transform-origin画时钟
css3属性transform和transform-origin"画"时钟 效果图 前言 八哥:哈喽,大家好!好攻城狮就是我就是你们的小八,欢迎收听你的月亮...哦不,是很高兴与你 ...
- tp框架基础(详细步骤分解,易懂)下
在浏览器中如果要访问操作方法的时候以什么方式来访问 有四种方式 第一种是get方式,第二种是访问路径 这四种方式我们可以通过修改配置文件来改掉url的模式 我们需要来改一下我们的配置文件 在这个路径下 ...
- TypeScript设计模式之职责链、状态
看看用TypeScript怎样实现常见的设计模式,顺便复习一下. 学模式最重要的不是记UML,而是知道什么模式可以解决什么样的问题,在做项目时碰到问题可以想到用哪个模式可以解决,UML忘了可以查,思想 ...
- DAX/PowerBI系列 - 参数表(Parameter Table)
DAX/PowerBI系列 - 参数表(Parameter Table) 难度: ★☆☆☆☆(1星) 适用范围: ★★★★☆(4星) 概况: 这个模式比较简单灵活,而且很实用.所用的DAX语句也比较简 ...
- JAVA面试题和答案(二)
本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能 ...
- 通过git提交代码到仓库
昨天有一个妹子问我如何在还没有commit之前push本地的代码到仓库,现在写写,希望能够帮到大家. 当我们pull的时候会出现没有代码commit的错误提示,在这种情况下,我们需要再commit之前 ...
- HttpServletRequest 各种方法总结
HttpServletRequest HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象 ...
- IE浏览器下使用AJAX登陆接口请求缓存与登陆不了的问题解决
问题: 在IE浏览器下面,登陆的时候老是登陆不上,但是打开控制台的时候再登陆却能登陆上. 分析: 通过抓包,发现,在不打开控制台的时候,少了一个接口的请求,却返回了改接口的返回信息,但是返回信息并不是 ...
- NIO(一、概述)
离上次发布文章已过去好几个月,说好的积累和分享都烟消云散.似乎忙碌从未终止过,加班成为常态,甚至阅读都需要更琐碎的时间. 目录 NIO(一.概述) NIO(二.Buffer) 概述 JavaNIO(n ...