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

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

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

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

如图,点击上一页返回前面一页的数据,点击下一页,返回后面一页的数据,点击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. C# Action

    Action<T> Delegate Encapsulates a method that has a single parameter and does not return a val ...

  2. md5,原理待续

    以前项目中copy出来的 import java.security.MessageDigest; public class MD5Util { /** * @todo MD5加码 生成32位md5码 ...

  3. 阿里云自定义监控tomcat进程数

    阿里云提供自定义监控SDK,这有助于我们定制化的根据自身业务来做监控,下面我就根据业务需求来介绍一个简单的自定义监控配置. 阿里提供了2个版本的自定义监控接口:自定义监控SDK(python版) :c ...

  4. TOGAF架构培训材料学习总结

        作于一个架构师尤其是企业架构师来说,丰富的理论知识可以帮助他在架构规划及管理过程中站在更高的角度去看待问题,历史发展原因有很多已成体系的架构理论,TOGAF是近年来比较接地气的,受到了政府和银 ...

  5. Adobe Photoshop CC 2015安装激活教程

    Adobe Photoshop CC 2015安装激活教程(附序列号) Adobe Photoshop CC 2015是Adobe针对旗下的创意云Creative Cloud 套装推出了2015年年度 ...

  6. 超级详细的解决方法 (CentOS7) :永久修改 mysql read-only 问题 could not retrieve transation read-only status server

    一.查看mysql的事物隔离级别 SHOW VARIABLES LIKE '%iso%'; 二.临时修改事物隔离级别 SET GLOBAL tx_isolation='READ-COMMITTED'; ...

  7. Plupload 多实例上传 测试可用

    <style type="text/css"> .btn{-webkit-border-radius:3px;-moz-border-radius:3px;-ms-bo ...

  8. UISwitch的常见属性

    1.onTintColor属性:设置ON一边的背景颜色,默认是绿色. 2.tintColor属性:设置OFF一边的背景颜色,默认是灰色,发现OFF背景颜色其实也是控件”边框“颜色. 3.thumbTi ...

  9. Synchronizer解析(为AQS打个铺垫)

    ReentranceLock 和 Semaphore有很多共同点,他们都像是一个gate一样, 来控制让哪些线程阻塞,让哪些线程通过. 不同的是,ReentranceLock允许通过的量是1,Sema ...

  10. Android-MediaPlayer-视频频播放-异步准备

    上两篇博客,Android-MediaPlayer-音频播放-普通准备,Android-MediaPlayer-音频播放-异步准备,主要是讲解了音频(.mp3文件)音乐