前台js分页,自己手写逻辑
js代码如下:
//设置分页
var pageSize = 10;
//设置一次显示多少页
var pageLimit = 5;
$(function(){
//查询所有内容
$.post(ctx + '/websites/queryListForPage',{navId:company.xwzx.id,start:0,limit:pageSize},function(success){
if(success.results==0){
return;
}
//清空新闻资讯列表
var xwzxHtml = "<ul>";
//计算当前有多少页
var pageTotal = Math.ceil(success.results/pageSize);
//当前页数
var currentPage = 0;
//临时变量,比较数目大小
var count = 0;
//比较当前应显示多少数据
if(success.results<=pageSize){
count = msg.length;
}else{
count = pageSize;
}
for(var i = 0;i<success.rows.length;i++){
xwzxHtml += '<li class="newsList_li">'
+'<a href="xwzxDetail?contentId='+success.rows[i].id+'"><div class="newsList_date">'
+'<p class="newsList_day">'+dateTime(success.rows[i].dtime)+'</p></div>'
+'<div class="newsList_intro">'
+'<h3>有关“'+success.rows[i].title+'”的新闻动态</h3>'
+'<p>'+success.rows[i].newsAbstract+'</p></div></a></li>'
}
xwzxHtml += "</ul>";
//分页
xwzxHtml += '<div class="newsList_page">'
+'<a href="javascript:void(0)" onclick="changePage('+0+','+pageTotal+','+0+')">首页</a>'
+'<a href="javascript:void(0)" onclick="changePage('+((0-1)*pageSize)+','+pageTotal+','+(currentPage-1)+')">上一页</a>';
//如果总页数大于设置的页数,则
if(pageTotal>pageLimit){
for(var i=0;i<pageLimit;i++){
xwzxHtml += '<a href="javascript:void(0)" onclick="changePage('+(i*pageSize)+','+pageTotal+','+i+')">'+(i+1)+'</a>';
}
xwzxHtml += '<a style="cursor: not-allowed;">......</a>';
}else{
for(var i=0;i<pageTotal;i++){
xwzxHtml += '<a href="javascript:void(0)" onclick="changePage('+(i*pageSize)+','+pageTotal+','+i+')">'+(i+1)+'</a>';
}
}
xwzxHtml += '<a href="javascript:void(0)" onclick="changePage('+((0+1)*pageSize)+','+pageTotal+','+(currentPage+1)+')">下一页</a>'
+'<a href="javascript:void(0)" onclick="changePage('+((pageTotal-1)*pageSize)+','+pageTotal+','+(pageTotal-1)+')">尾页</a>'
+'</div>';
$('.yzIntro_row').html(xwzxHtml);
});
});
//将后台传过来的时间转换成年月日时分秒
function dateTime(obj){
var mmsecond = obj;
var result = [60,60,24];
var flag;
var result_re = "";
mmsecond = Math.floor(mmsecond/1000);
//变成秒单位,但是不操作
var i;
//下面这个for计算时分秒
for(i=0;i<3;i++){
flag = Math.floor(mmsecond%result[i]);
mmsecond = Math.floor(mmsecond/result[i]);
if(flag < 10){
result_re = "0"+flag +":"+ result_re;
}else{
result_re = flag +":"+ result_re;
}
}
//去掉最后的一个冒号
result_re = result_re.substring(0,result_re.length-1);
//下面计算年月日
var year,month,day;
var everyMonth = [31,28,31,30,31,30,31,31,30,31,30,31];
//计算年
flag = Math.floor(mmsecond/365);
year = 1970 - 0 + flag;
mmsecond = Math.floor(mmsecond%365);
//计算月和日
for(i=0;i<12;i++){
//判断闰月
if(((year%4 == 0)&&(year%100 != 0)) || (year%400 == 0)){
if(mmsecond == 59){
month = "02";
day = "29";
break;
}
}
if(mmsecond > everyMonth[i]){
mmsecond -= everyMonth[i];
}else{
month = i+1;
day = mmsecond;
month = month >10?month:"0"+month;
day = day>10?day:"0"+day;
}
}
//拼起来 05</p><p>2016年10月</p>
result_re = day + "</p><p>" + year + "年" + month + "月";
return result_re;
}
function changePage(start,pageTotal,currentPage){
if(start<0){
start = 0;
currentPage+=1;
}
if(currentPage>pageTotal){
start = start - pageSize;
currentPage-=1;
}
$.ajaxSetup({async : false});
$.post(ctx + '/websites/queryListForPage',{start:start,limit:pageSize,navId:company.xwzx.id},function(success){
if(success.results==0){
return;
}
//清空新闻资讯列表
var xwzxHtml = "<ul>";
for(var i = 0;i<success.rows.length;i++){
xwzxHtml += '<li class="newsList_li">'
+'<a href="xwzxDetail?contentId='+success.rows[i].id+'"><div class="newsList_date">'
+'<p class="newsList_day">'+dateTime(success.rows[i].dtime)+'</p></div>'
+'<div class="newsList_intro">'
+'<h3>有关“'+success.rows[i].title+'”的新闻动态</h3>'
+'<p>'+success.rows[i].newsAbstract+'</p></div></a></li>'
}
xwzxHtml += "</ul>";
//分页
xwzxHtml += '<div class="newsList_page">'
+'<a href="javascript:void(0)" onclick="changePage('+0+','+pageTotal+','+0+')">首页</a>'
+'<a href="javascript:void(0)" onclick="changePage('+((currentPage-1)*pageSize)+','+pageTotal+','+(currentPage-1)+')">上一页</a>';
if(pageTotal > pageLimit){
//判断如果是小于当前页数
if(currentPage<Math.ceil(pageLimit/2)){
for(var i=0;i<pageLimit;i++){
xwzxHtml += '<a href="javascript:void(0)" onclick="changePage('+(i*pageSize)+','+pageTotal+','+i+')">'+(i+1)+'</a>';
}
xwzxHtml += '<a style="cursor: not-allowed;">......</a>';
//判断尾页
}else if(pageTotal<(currentPage+Math.ceil(pageLimit/2))){
xwzxHtml += '<a style="cursor: not-allowed;">......</a>';
for(var i=(pageTotal-pageLimit);i<pageTotal;i++){
xwzxHtml += '<a href="javascript:void(0)" onclick="changePage('+(i*pageSize)+','+pageTotal+','+i+')">'+(i+1)+'</a>';
}
//判断中间页
}else{
xwzxHtml += '<a style="cursor: not-allowed;">......</a>';
for(var i=(currentPage-Math.ceil(pageLimit/2)+1);i<(pageLimit+currentPage-Math.ceil(pageLimit/2)+1);i++){
xwzxHtml += '<a href="javascript:void(0)" onclick="changePage('+(i*pageSize)+','+pageTotal+','+i+')">'+(i+1)+'</a>';
}
xwzxHtml += '<a style="cursor: not-allowed;">......</a>';
}
// for(var i=0;i<pageLimit;i++){
// xwzxHtml += '<a href="javascript:void(0)" onclick="changePage('+(i*pageSize)+','+pageTotal+','+i+')">'+(i+1)+'</a>';
// }
}else{
for(var i=0;i<pageTotal;i++){
xwzxHtml += '<a href="javascript:void(0)" onclick="changePage('+(i*pageSize)+','+pageTotal+','+i+')">'+(i+1)+'</a>';
}
}
xwzxHtml += '<a href="javascript:void(0)" onclick="changePage('+((currentPage+1)*pageSize)+','+pageTotal+','+(currentPage+1)+')">下一页</a>'
+'<a href="javascript:void(0)" onclick="changePage('+((pageTotal-1)*pageSize)+','+pageTotal+','+(pageTotal-1)+')">尾页</a>'
+'</div>';
$('.yzIntro_row').html(xwzxHtml);
$('.newsList_page >a').each(function(){
if((currentPage+1)==$(this).html()){
$(this).css('background','#2688c3');
$(this).css('color','#fff');
}
});
});
}
jsp代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ include file="common/head.jsp"%>
<script type="text/javascript" src="${ctx}/plugins/yz/web/resources/js/xwzx.js"></script>
<title>${company.websitesName }— 新闻资讯列表</title>
</head> <body>
<!--top-->
<jsp:include page="common/header.jsp" />
<!--slide-->
<div class="yzjjfa_slide yzNews_slide"><a href="javascript:window.location.href='xwzx'"><img src="../plugins/yz/web/resources/imgs/newsSlideImg.png" /></a> </div>
<!--position-->
<div class="yzContain yzjjfa_posi">
<img src="../plugins/yz/web/resources/imgs/posIcon.png" />
您现在所处的位置:<a href="javascript:window.location.href='index'">--信息技术服务有限公司</a>>
<a href="javascript:window.location.href='xwzx'">新闻资讯</a>
</div>
<!--content-->
<div class="yzContain yzjjfa_content">
<p class="yzSepea_line yzNews_line"></p>
<div class="yzIntro_row"> </div>
</div>
<jsp:include page="common/footer.jsp" />
</body>
</html>
新闻资讯css如下:
/*-------新闻资讯------*/
.yzNews_rightTitle{ background: url("../imgs/newsTitle_icon.png") no-repeat scroll left center; margin-top:-20px;}
.yzNews_rightUl > li{ background: url("../imgs/newsList_icon.png") no-repeat scroll left 11px; height:30px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
.yzNews_line{ margin-bottom:40px;}
.newsList_li{ height:90px; padding:20px 15px 20px; border-bottom:dashed 1px #eaeaea;}
.newsList_li>a:hover>.newsList_intro>p,.newsList_li>a:hover>.newsList_intro>h3{ color:#2688c3;}
.newsList_date{ width:80px; height:70px; text-align:center; background:#f0f0f0; float:left; padding:10px 5px;}
.newsList_day{ width:100%; height:30px; line-height:30px; font-size:24px; margin-bottom:12px; }
.newsList_intro{ width:1050px; height:90px; float:left; margin-left:30px; }
.newsList_intro>h3{ font-size:20px; font-weight: normal; margin-top:5px; }
.newsList_intro>p{ margin-top:10px; height:47px; overflow:hidden; line-height:23px; color:#555; }
.newsList_page{ margin-top:40px; float:right;}
.newsList_page>a{ display:inline-block; padding:5px 10px; border:solid 1px #2688c3; color:#2688c3; border-radius: 3px; margin-right:5px;}
.newsList_page>a:hover,.newsList_page>a:focus,.newsList_page>a:active{ background:#2688c3; color:#fff;}
.yzNews_slide{ padding-top:;}
前台js分页,自己手写逻辑的更多相关文章
- Blazor组件自做二 : 使用JS隔离制作手写签名组件
Blazor组件自做二 : 使用JS隔离制作手写签名组件 本文相关参考链接 JavaScript 模块中的 JavaScript 隔离 Viewer.js工程 Blazor组件自做一 : 使用JS隔离 ...
- JS / Egret 单笔手写识别、手势识别
UnistrokeRecognizer 单笔手写识别.手势识别 UnistrokeRecognizer : https://github.com/RichLiu1023/UnistrokeRecogn ...
- 前台js分页,自己手写逻辑2
//设置分页 var pageSize = 10; //设置一次显示多少页 var pageLimit = 5; $(function(){ $.post("rest/rtdbfix/lis ...
- 五四青年节,今天要学习。汇总5道难度不高但可能遇到的JS手写编程题
壹 ❀ 引 时间一晃,今天已是五一假期最后一天了,没有出门,没有太多惊喜与意外.今天五四青年节,脑子里突然想起鲁迅先生以及悲欢并不相通的话,我的五一经历了什么呢,忍不住想说那大概是,父母教育孩子大声嚷 ...
- 待实践二:MVC3下的3种验证 (1)前台 jquery validate验证 (2)MVC实体验证 (3)EF生成的/自己手写的 自定义实体校验(伙伴类+元素据共享)
MVC3下的3种验证 (1):前台Jquery Validate脚本验证 引入脚本 <script src="../js/jquery.js" type="text ...
- django 常用方法总结 < 手写分页-上传头像-redis缓存,排行 ...>
1.不使用自带模块<Paginator>的手写分页功能views.pydef post_list(request): page = request.GET.get('page', 1) # ...
- vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件
vue10行代码实现上拉翻页加载更多数据,纯手写js实现下拉刷新上拉翻页不引用任何第三方插件/库 一提到移动端的下拉刷新上拉翻页,你可能就会想到iScroll插件,没错iScroll是一个高性能,资源 ...
- 手写Express.js源码
上一篇文章我们讲了怎么用Node.js原生API来写一个web服务器,虽然代码比较丑,但是基本功能还是有的.但是一般我们不会直接用原生API来写,而是借助框架来做,比如本文要讲的Express.通过上 ...
- 手写Koa.js源码
用Node.js写一个web服务器,我前面已经写过两篇文章了: 第一篇是不使用任何框架也能搭建一个web服务器,主要是熟悉Node.js原生API的使用:使用Node.js原生API写一个web服务器 ...
随机推荐
- MyBatis架构设计及源代码分析系列(一):MyBatis架构
如果不太熟悉MyBatis使用的请先参见MyBatis官方文档,这对理解其架构设计和源码分析有很大好处. 一.概述 MyBatis并不是一个完整的ORM框架,其官方首页是这么介绍自己 The MyBa ...
- Web开发中错误页面的配置
一.创建错误处理页. 1)web.xml里面添加 <error-page> <error-code>404</error-code> <location> ...
- electron加载jquery报错问题
<!-- Insert this line above script imports --> <script>if (typeof module === 'object') { ...
- ping 和 traceroute 命令
ping 和 traceroute 命令 ping 程序 就是发送一个ICMP查询报文给某服务器,以测试该服务器是否可达. 当返回ICMP回显应答时,要打印出序列号.TTL,和往返时间: [roo ...
- Apache22中配置虚拟主机(Apache VirtualHost)
Apache VirtualHost的作用就是可以让一个apache为多个域名服务,相当于一个服务器挂了N多个网站,举个例子: 我的apache服务器,ip为x.x.x.x,我有两个域名www.too ...
- web安全防范
xss漏洞 原理:信任了用户输入或控制的字段(url),回显(jQuery.html)到页面.导致script代码执行 后果:可以在页面执行任何hack代码,比如死循环.发送cookie.钓鱼.页面显 ...
- 淘宝(阿里百川)手机客户端开发日记第五篇 SharedPreferences使用详解
我们知道,Android中数据存储技术由于如下几种 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 ...
- ref游标(动态游标)
参照变量--用于存放数值指针的变量 游标变量(ref cursor) 使用游标时,当定义游标时不需要指定相应的select语句,但是当使用 游标时(open时)需要指定select语句 ...
- nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
iwangzheng.com tty:[0] jobs:[0] cwd:[/opt/nginx/conf] 12:45 [root@a02.cmsapi]$ /usr/local/nginx/sbin ...
- C#开发实例 鼠标篇
鼠标的操作控制: 鼠标是计算机的一个重要组成部分,有很多默认的设置,如双击时间间隔,闪烁频率,移动速度等,本篇使用C#获取这些基本的信息. 1.1获取鼠标信息 ①实例001 获取鼠标双击时间间隔 主要 ...