前端页面官网的开发,离不开新闻列表,新闻列表一般都会有分页的功能,下面是我自己总结加查找网上资料写的一个分页的功能,记录一下。

首先,官网的开发建立在前后端分离的基础上;

再有,后端小伙伴们提供列表页数据的接口;

最后,从接口拿数据,渲染到页面上。

如图,点击上一页返回前面一页的数据,点击下一页,返回后面一页的数据,点击1、2...跳转到相应的页面的数据。

上代码,先来布局部分html代码

<div class="main-list-col">
<div class="list-main-lists main-lists-lastest"></div> //存放获取的数据内容
<div class="list-pages listpage-latest">
<a href="javascript:" class="pre-page"></a> //上一页
<div class="pagesin"></div> //页码数
<a href="javascript:" class="next-page"></a> //下一页
<a href="javascript:" class="cur-page"></a> //第几页
<a href="javascript:" class="all-page"></a> //共几页
</div>
</div>

布局其实很清楚,类名就表示了每个对应的内容是什么。

对应js部分代码

var totlePage,totleSize;        //声明变量,总页数totlepage,列表页总新闻条数totleSize
var curPage = 1; //设置当前页为curPage=1第一页
getnewsList(1); //页面加载时,默认获取的是第一页的数据;getNewsList()获取页面数据Ajax的函数;
$(".listpage-latest .pagesin").on("click","a",function(){ //每页页码,及点击页码相应的跳转;页码需要根据获取的总数据条数计算出来并拼到页面上,所以js事件要用on,一定要用on,不然点击事件没有效果
$(".main-lists-lastest").empty(); //不管到哪一步,点击页码首页得清除那个页面的数据,再加载新的内容进去,所以empty了解一下,我这里用了a标签的rel属性来判断加载
var rel = $(this).attr("rel");
curPage = rel;
console.log(rel);
if(rel){
getnewsList(rel);
$(this).eq(rel).addClass("active-pages");
}
});
$(".listpage-latest .next-page").click(function(event){ //下一页
$(".main-lists-lastest").empty();
if(curPage > totlePage-1){ //如果当前页码大于总页码就只加载最后一页,并弹框
curPage = totlePage;
alert("the last page");
getnewsList(curPage);
}else{
curPage++;
getnewsList(curPage);
}
});
$(".listpage-latest .pre-page").click(function(event){ //上一页
$(".main-lists-lastest").empty();
if(curPage < 2){ //如果当前页码小于第一页就只加载第一页,并弹框
curPage = 1;
getnewsList(1);
alert("the first page");
}else{
curPage--;
getnewsList(curPage);
}
});
function getnewsList(page){ //Ajax获取新闻列表的数据内容
$.ajax({
type: "GET",
url: "https://", //后端小伙伴给的新闻列表页的接口
dataType: "json",
data: { //接口参数的设置
"gameid": 4,
"page": page,
"size":6,
"type": 0,
},
success:function(data){
if(data.c && data.d){
totleSize = data.t;
console.log(totleSize);
totlePage = Math.ceil(totleSize/6); //计算总页数
page = curPage;
var data = data.d;
var newsarray = [];
for(var i=0;i<data.length;i++){
newsarray = data[i];
var newsdate = newsarray.date;
var splitDate = newsdate.split("-");
$(".main-lists-lastest").append($('<a href="show.html?newsid='+newsarray.id+'"><img src='+newsarray.thumb+'><p><span>'+newsarray.title+'</span>'+newsarray.description+'</p><p>'+splitDate[2]+'<span>'+splitDate[0]+'-'+splitDate[1]+'</span></p></a>'));
}
}
},
complete:function(){
getPageBar();
}
});
}
function getPageBar(){
$(".listpage-latest .pagesin").empty();
$(".listpage-latest .pre-page").empty();
$(".listpage-latest .all-page").text("共"+totlePage+"页");
$(".listpage-latest .cur-page").text("第"+curPage+"页");
$(".listpage-latest .pre-page").text("上一页");
$(".listpage-latest .next-page").text("下一页");
for(var j=1;j<totlePage+1;j++){
$(".listpage-latest .pagesin").append($('<a href="javascript:" rel='+j+'>'+j+'</a>'));
if(j == curPage){
$(".listpage-latest .pagesin a").eq((j-1)).addClass("active-pages");
}
}
}

简单的分页功能的实现,每个点击事件都是独立执行,比较简单易懂~

Jquery、Ajax实现新闻列表页分页功能的更多相关文章

  1. 帝国cms 列表页分页样式修改美化【2】

    上一篇(帝国cms 列表页分页样式修改美化[1])中我们已经对分页说了一个大概,下面我们就自己动手弄一个分页把: 第一步:进入帝国cms后台,点击系统设置->系统参数设置->信息设置:里面 ...

  2. 帝国cms 7.5版列表页分页样式修改笔记

    最近在用帝国改版我的个人博客站点,这个也是我第一次尝试用帝国来做博客,之前用过wordpress,每用一个新的程序,都会有些新的收获,也会学到一些新的东西. 在改用帝国之前,我也在网上大概了解了一下, ...

  3. jquery ajax php+mysql 无刷新分页 详细实例

    最近在接触jquery和ajax,当前项目也会用到分页,为了用户体验更好一些,就准备用无刷新分页,这个demo很适合新手学习查看,写的比较清晰,话不多说,直接上代码吧. 首先是html页面,index ...

  4. asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageTest.aspx.cs ...

  5. dede列表页分页地址优化(不同url相同内容问题解决)<转自http://www.966266.com>

    <注明,完全转自http://www.966266.com/seoblog/?p=75> 存在问题 DEDE默认分类分页地址存在不同URL相同内容问题,导致内容重复,对SEO非常不利.情况 ...

  6. 帝国cms 列表页分页样式修改美化【1】

    [1]自己修改帝国cms默认的分页样式(css),这样做的好处是你不用去改动帝国的核心文件,方便以后升级. [2]自己动手去修改帝国的分页(php+css),帝国的分页在e>class>下 ...

  7. Angular2快速入门-3.多个组件(分离新闻列表页和详细页)

    上篇(Angular2快速入门-2.创建一个新闻列表)已经完成新闻列表的展示,并且点击新闻列表的时候,下面可以展示出新闻的详细信息,这节我们把新闻详细和新闻列表页面分离出来 新闻详细单独一个compo ...

  8. 静态页分页功能js代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. jQuery循环滚动新闻列表

    最近由于项目原因,学习了下jquery,实现了一个小小的功能,就是点击公告的上一条下一条来查看滚动条.具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DT ...

随机推荐

  1. go 算法

    题目: 请实现一个算法,确定一个字符串的所有字符[是否全都不同].这里我们要求[不允许使用额外的存储结构].给定一个string,请返回一个bool值,true代表所有字符全都不同,false代表存在 ...

  2. c# class struct区别

    一句话,前者引用类型,后者值类型,适合高性能的情况,但不可存储大数据.

  3. du熊的机器人

    [du熊的机器人] Description du熊正在玩一个别人刚送给它的机器人.这个机器人只能在一个棋盘中行走,棋盘的左上角格子为(0, 0),右下角格子为(X, Y). du熊控制这个机器人从棋盘 ...

  4. JSP中系统Date的几点不符合中国时间观的地方

    正常调用系统时间的显示格式是Date date = new Date 显示出来的当前时间为Sun Nov 22 18:39:51 CST 2015 星期天的英文单词是Sun, 这个大家都是熟悉的, 这 ...

  5. sqlserver top 赋值

    DECLARE @password2 VARCHAR(30) select top 1 @password2= password from teacher 不要写成 DECLARE @password ...

  6. Zookeeper 源码(四)Zookeeper 服务端源码

    Zookeeper 源码(四)Zookeeper 服务端源码 Zookeeper 服务端的启动入口为 QuorumPeerMain public static void main(String[] a ...

  7. Spring MVC的handlermapping之请求分发如何找到正确的Handler(RequestMappingHandlerMapping)

    这个思路同样是通过在AbstractHandlerMethodMapping里面来实现getHandlerInternal()实现自己的方法来处理寻找正确的处理器,不懂得请看上一篇. protecte ...

  8. ruby变量

    Ruby 支持五种类型的变量. 一般小写字母.下划线开头:变量(Variable).局部变量的作用域从 class.module.def 或 do 到相对应的结尾或者从左大括号到右大括号 {}. 当调 ...

  9. OpenCV的配置

    系统配置:win7 64位系统,编译器 vs2013 一.下载OpenCV安装包(版本2.4.13) https://excellmedia.dl.sourceforge.net/project/op ...

  10. 51nod1057—N的阶乘—(大数阶乘)

    1057 N的阶乘  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 输入N求N的阶乘的准确值.   Input 输入N(1 <= N <=  ...