原生js显示分页效果

<!DOCTYPE html> 

<html> 

<head lang="en"> 

<meta charset="UTF-8"> 

<title>原生js分页</title> 

 <style type="text/css"> 

 #pageNav { display: inline-block; }
 #pageNav a { display: inline-block; width: 30px; height: 30px; line-height: 30px; text-align: center; color: #000; margin-right: 10px; text-decoration: none; background: #fff; }
 #pageNav a.active, #pageNav a:hover { background: #2176FF; color: #fff; } 

 </style>
</head> 

<body> 

<div id="pageBox"> 

<div id="containet"> 

<ul id="pageMain"> 

 <li>这是内容标题 第1条</li> 

 <li>这是内容标题 第2条</li> 

<li>这是内容标题 第3条</li> 

<li>这是内容标题 第4条</li> 

<li>这是内容标题 第5条</li> 

<li>这是内容标题 第6条</li> 

</ul> 

</div> 

<span id="prev">上一页</span> 

<ul id="pageNav"></ul> 

<span id="next">下一页</span> 

</div> 

</body> 

</html> 

<script> 

 window.onload = function(){
 tabPage({ 

 pageMain : ‘pageMain‘, 

pageNav : ‘pageNav‘, 

pagePrev: ‘prev‘, 

 pageNext: ‘next‘, 

 curNum: 3, //每页显示的条数 

activeClass: ‘active‘, //高光显示的class 

 ini: 0 //初始化显示的页面 

});
function tabPage(tabPage){ 

 var pageMain = document.getElementById(tabPage.pageMain); //获取内容列表 

var pageNav = document.getElementById(tabPage.pageNav); //获取分页 

var pagePrev = document.getElementById(tabPage.pagePrev); //上一页 

var pageNext = document.getElementById(tabPage.pageNext); //下一页 

var curNum = tabPage.curNum; //每页显示数 

var len = Math.ceil(pageMain.children.length / curNum); //计算总页数 

var pageList = ‘‘; //生成页码 

var iNum = 0; //当前的索引值index 

 for(var i = 0; i < len; i++){ 

 pageList+=‘<a href="javascript:;">‘+ ( i + 1)+‘</a>‘; 

} 

 pageNav.innerHTML = pageList;
 pageNav.children[0].className = tabPage.activeClass; //头一页加高亮显示 

for(var i = 0; i < pageNav.children.length; i++){ 

 pageNav.children[i].index = i; 

 pageNav.children[i].onclick = function(){ 

 for(var t = 0; t < pageNav.children.length; t++){ pageNav.children[t].className = ‘‘; } 

 this.className = tabPage.activeClass; iNum = this.index; ini(iNum); 

 };

 }
//下一页 

pageNext.onclick = function(){ 

 if(iNum == len - 1){ alert(‘已经是最后一页‘); return false; }

else{ 

 for(var t = 0; t < pageNav.children.length; t++){ pageNav.children[t].className = ‘‘; } 

 iNum++; 

 pageNav.children[iNum].className = tabPage.activeClass; 

 ini(iNum); 

 } 

 };
//上一页 

pagePrev.onclick = function(){ 

 if(iNum == 0){ alert(‘当前是第一页‘); return false; }

else{ 

 for(var t = 0; t < pageNav.children.length; t++){ pageNav.children[t].className = ‘‘; } 

iNum--; 

 pageNav.children[iNum].className = tabPage.activeClass; 

ini(iNum); 

} 

 };
 function ini(iNum){ 

 for(var i = 0; i < pageMain.children.length; i++){ pageMain.children[i].style.display = ‘none‘; }
 for(var i = 0; i < curNum; i++){ 

 if(pageMain.children[(iNum * curNum + i)] == undefined){ continue; } 

 pageMain.children[(iNum * curNum + i)].style.display = ‘block‘; } 

 }
 ini(iNum);
 } 

}; 

</script>

// <![CDATA[ window.onload = function(){ tabPage({ pageMain : ‘pageMain‘, pageNav : ‘pageNav‘, pagePrev: ‘prev‘, pageNext: ‘next‘, curNum: 3, //每页显示的条数 activeClass: ‘active‘, //高光显示的class ini: 0 //初始化显示的页面 }); function tabPage(tabPage){ var pageMain = document.getElementById(tabPage.pageMain); //获取内容列表 var pageNav = document.getElementById(tabPage.pageNav); //获取分页 var pagePrev = document.getElementById(tabPage.pagePrev); //上一页 var pageNext = document.getElementById(tabPage.pageNext); //下一页 var curNum = tabPage.curNum; //每页显示数 var len = Math.ceil(pageMain.children.length / curNum); //计算总页数 var pageList = ‘‘; //生成页码 var iNum = 0; //当前的索引值index for(var i = 0; i < len; i++){ pageList+=‘<a href="javascript:;">‘+ ( i + 1)+‘</a>‘; } pageNav.innerHTML = pageList; pageNav.children[0].className = tabPage.activeClass; //头一页加高亮显示 for(var i = 0; i < pageNav.children.length; i++){ pageNav.children[i].index = i; pageNav.children[i].onclick = function(){ for(var t = 0; t < pageNav.children.length; t++){ pageNav.children[t].className = ‘‘; } this.className = tabPage.activeClass; iNum = this.index; ini(iNum); }; } //下一页 pageNext.onclick = function(){ if(iNum == len - 1){ alert(‘已经是最后一页‘); return false; }else{ for(var t = 0; t < pageNav.children.length; t++){ pageNav.children[t].className = ‘‘; } iNum++; pageNav.children[iNum].className = tabPage.activeClass; ini(iNum); } }; //上一页 pagePrev.onclick = function(){ if(iNum == 0){ alert(‘当前是第一页‘); return false; }else{ for(var t = 0; t < pageNav.children.length; t++){ pageNav.children[t].className = ‘‘; } iNum--; pageNav.children[iNum].className = tabPage.activeClass; ini(iNum); } }; function ini(iNum){ for(var i = 0; i < pageMain.children.length; i++){ pageMain.children[i].style.display = ‘none‘; } for(var i = 0; i < curNum; i++){ if(pageMain.children[(iNum * curNum + i)] == undefined){ continue; } pageMain.children[(iNum * curNum + i)].style.display = ‘block‘; } } ini(iNum); } }; // ]]>
时间: 2024-10-06 15:59:59

原生js显示分页效果的相关文章

原生JS实现分页效果1.0

不太完整,写的太急,等等加上完整注释,写起来还是有些难度的,写的有点水,后面再改进改进. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>原生JS实现分页效果</title> <style> body{ margin:100px 200px; } #page{ margin:20px 0; } #

原生JS实现分页效果2.0(新增了上一页和下一页,添加当前元素样式)

虽然写的很烂,但至少全部都是自己写的,因为这个没有固定的顺序,所以就没有封装,如果你技术好的话,可以你写的分享给我,谢谢. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>原生JS实现分页效果</title> <style> body{ margin:100px 200px; } #page{ m

图片切换特效(1):原生JS图片切换效果

转自:http://www.codefans.net/jscss/code/4699.shtml <!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">

React.js实现原生js拖拽效果及思考

一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖拽效果. 首先,其实拖拽效果的思路是很简单的.主要就是三个步骤: 1.onmousedown的时候,启动可拖拽事件,记录被拖拽元素的原始坐标参数. 2.onmousemove的时候,实时记录鼠标移动的距离,结合被拖拽元素第一阶段的坐标参数,计算并设置新的坐标值. 3.onmouseup的时候,关闭可拖拽事件

原生js版分页插件

之前我在自己的博客里发表了一篇用angularJs自定义指令实现的分页插件,今天简单改造了一下,改成了原生JavaScript版本的分页插件,特此记录下来.如有不足之处,欢迎指出. 本插件可以实现的功能: 1. 可初始化每页条数,以及重新选择每页条数 2.自定义首末页.上下页按钮的显示内容(是:<<.  >>.  < .  >    还是:首页.末页.上一页.下一页) 3.设置当前页在一定范围时,是否显示省略号按钮 4.自定义当前页按钮与省略号按钮之间显示的数字按钮的个

用js实现分页效果

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> #data {color: red;border: solid;text-align: center;} a{text-decoration: none;} </style> </he

JS实现分页效果

<!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><meta http-equiv="Content-Typ

原生js实现的效果

原生js实现tooltip提示框的效果 在js的世界里面,每一个小的特效都那么微不足道,却又那么的令人向往与好奇.前端工程师的任务特别高大上,因为他们的一个小小的设计就会激发别人的求知欲.比如说我,只是随机一瞟,便看到了这个tooltip的特效,就有一种想要征服它的愿望. 比如这个tooltip的效果展示: 这个便是tooltip提示框的效果. 在Hbulider上的代码展示: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta

原生js简易日历效果实现

这里我们将用原生js实现简易的日历,原理和之前的原生js选项卡差不多,不过也有些区别: 首先html代码: <div class="container"> <div class="container_cont"> <ul id="cont_ul"> <li class="active"> <span>1</span> <p>jan</p&