【原生JS】动态分页样式效果
效果图如下:

html:
<body>
<div>
<table id="btnbox">
<tbody>
<tr><td>
<a href="#" class="btn">上一页</a>
<a href="#" index="1">1</a>
<a href="#" index="2">2</a>
<a href="#" index="3">3</a>
<a href="#" index="4">4</a>
<a href="#" index="5">5</a>
<a href="#" index="6">6</a>
<a href="#" index="7">7</a>
<a href="#" index="8">8</a>
<a href="#" class="btn">下一页</a>
</td></tr>
</tbody>
</table>
</div>
</body>
CSS:
<style>
a{ /* a标签样式 */
width:17px;
height:20px;
display: inline-block;
text-align: center;
text-decoration:none;
border: 1px #000000 solid;
font:12px/20px "宋体";
}
.btn{ /* 上一页下一页的宽 */
width:60px;
}
#btnbox .on{color:#ffffff;background:blue;} /* 预先设置好被点击的分页按钮的被点击状态 ,通过修改a标签的classname进行动态修改当前选中状态 */
a:hover{ /* hover 使鼠标移上去显示背景颜色及边框 */
color:#ffffff;
background:blue;
}
table{ /* 在div中居中显示 */
margin: 0 auto;
}
</style>
JS:
<script type="text/javascript" language="javascript">
window.onload = function(){var btnlist = document.getElementById('btnbox').getElementsByTagName('a'); //获取table下的所有a标签 注意这里的返回值是一个伪数组,并不支持对数组进行splice等操作,相关伪数组资料自行了解。
var index; //定义一个记录当前选中按钮的变量
for(var i=0;i<btnlist.length;i++){ //使用for循环对1-8按钮进行点击事件绑定
if(i!=0 && i<btnlist.length-1){ //因为上一页下一页也在数组btnlist里面,所以需要排除
btnlist[i].onclick = function(){
clearbtn();
this.className = 'on'; //当鼠标点击该按钮时给按钮设置选中样式
index = parseInt(this.getAttribute('index')); //取出当前按钮即a标签的自定义index值 使用 getAttrinbute 方法 需要转换成整数进行计算
}
}
}
btnlist[0].onclick = function(){ //为上一页绑定点击事件
if(index != 0){goto('-');}
}
btnlist[btnlist.length-1].onclick = function(){ //为下一页绑定点击事件
if(index != 0){goto('+');}
}
function goto(x){ //当点击上一页下一页时进行的前后判断操作
console.log(x);
if(x == '-' && index != 1){
index = index - 1;
}
else if(x == '+' && index != 8){
index = index + 1;
}
clearbtn();
btnlist[index].className = 'on'; //设置当前选中按钮样式
}
function clearbtn(){ // 清除选中样式
for(var i=1;i<(btnlist.length-1);i++){
if(btnlist[i].className == 'on'){btnlist[i].className = '';break;}
}
}
btnlist[1].onclick();
}
</script>
【原生JS】动态分页样式效果的更多相关文章
- 纯JS写动态分页样式效果
效果图如下: html: <body> <div> <table id="btnbox"> <tbody> <tr>&l ...
- 原生JS实现分页效果2.0(新增了上一页和下一页,添加当前元素样式)
虽然写的很烂,但至少全部都是自己写的,因为这个没有固定的顺序,所以就没有封装,如果你技术好的话,可以你写的分享给我,谢谢. <!DOCTYPE html><html lang=&qu ...
- 原生JS实现分页效果1.0
不太完整,写的太急,等等加上完整注释,写起来还是有些难度的,写的有点水,后面再改进改进. <!DOCTYPE html><html lang="en">&l ...
- 原生js动态添加style,添加样式
原生js动态添加style,添加样式 第一种 var style="[assign-url='"+str+"']{display:initial}"; var ...
- 微信小程序 JS动态修改样式
微信小程序这个坑啊,js动态修改样式,我们并不能用js或者jq 轻轻松松一行代码搞定.或者用removeClass addClass 来修改样式. 以下是一种动态修改样式的方法,原理是绑定数据,然后动 ...
- 原生JS封装简单动画效果
原生JS封装简单动画效果 一致使用各种插件,有时候对原生JS陌生了起来,所以决定封装一个简单动画效果,熟悉JS原生代码 function animate(obj, target,num){ if(ob ...
- 面向对象原生js幻灯片代淡出效果
面向对象原生js幻灯片代淡出效果 下面是代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...
- 原生js实现的放大镜效果
这是我用原生js写的放大镜效果,与各种各样的框架技术相比,我喜欢使用原生的js,在这里,想和大家一起谈谈原生和框架技术的理解与个人喜好. <!DOCTYPE HTML><html&g ...
- js动态创建样式: style 和 link
js动态创建样式: style 和 link ie6 不能 document.createElement('style') 然后append到head标签里.所以就找到这样个好文章 有很多提供动态创建 ...
随机推荐
- Javascript面向对象编程(四):非构造函数的继承
什么叫非构造函数的继承? 比如,现在有一个对象,叫做"中国人". var Chinese = { nation:'中国' }; 还有一个对象,叫做"医生". v ...
- Codeforces 451D
题目链接 D. Count Good Substrings time limit per test 2 seconds memory limit per test 256 megabytes inpu ...
- Hdu 2513 区间DP
Cake slicing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- MVVMDemo
QueryCommand.cs using System;using System.Collections.Generic;using System.Linq;using System.Text;us ...
- Docker.[3].镜像操作.
Docker.[3].镜像操作. 熟悉基础指令: 查看本地镜像 docker images 查看本地镜像 docker image list (和上面显示的结果一样.) 删除本地镜像 docker r ...
- Hibernate QBC 简单收集
Hibernate QBC 介绍: QBC(Query By Criteria)通过 API 来检索对象 主要由 Criteria 接口.Criterion 接口和 Exception 类组成,支持在 ...
- WPF程序国际化
1.创建相应的xaml文件 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presen ...
- Linux配置redis开机启动(CentOS 7)
https://blog.csdn.net/qq_31803503/article/details/79246205 本次配置linux版本是CentOS 7 首先将 redis-3.2.3/uti ...
- [React Native]获取网络状态
使用React Native,可以使用NetInfo API获取手机当前的各个网络状态. componentWillMount() { NetInfo.fetch().done((status)=&g ...
- Linux 下的python操作redis
python操作redis Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).se ...