效果图如下:

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】动态分页样式效果的更多相关文章

  1. 纯JS写动态分页样式效果

    效果图如下: html: <body> <div> <table id="btnbox"> <tbody> <tr>&l ...

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

    虽然写的很烂,但至少全部都是自己写的,因为这个没有固定的顺序,所以就没有封装,如果你技术好的话,可以你写的分享给我,谢谢. <!DOCTYPE html><html lang=&qu ...

  3. 原生JS实现分页效果1.0

    不太完整,写的太急,等等加上完整注释,写起来还是有些难度的,写的有点水,后面再改进改进. <!DOCTYPE html><html lang="en">&l ...

  4. 原生js动态添加style,添加样式

    原生js动态添加style,添加样式 第一种 var style="[assign-url='"+str+"']{display:initial}"; var ...

  5. 微信小程序 JS动态修改样式

    微信小程序这个坑啊,js动态修改样式,我们并不能用js或者jq 轻轻松松一行代码搞定.或者用removeClass addClass 来修改样式. 以下是一种动态修改样式的方法,原理是绑定数据,然后动 ...

  6. 原生JS封装简单动画效果

    原生JS封装简单动画效果 一致使用各种插件,有时候对原生JS陌生了起来,所以决定封装一个简单动画效果,熟悉JS原生代码 function animate(obj, target,num){ if(ob ...

  7. 面向对象原生js幻灯片代淡出效果

    面向对象原生js幻灯片代淡出效果 下面是代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...

  8. 原生js实现的放大镜效果

    这是我用原生js写的放大镜效果,与各种各样的框架技术相比,我喜欢使用原生的js,在这里,想和大家一起谈谈原生和框架技术的理解与个人喜好. <!DOCTYPE HTML><html&g ...

  9. js动态创建样式: style 和 link

    js动态创建样式: style 和 link ie6 不能 document.createElement('style') 然后append到head标签里.所以就找到这样个好文章 有很多提供动态创建 ...

随机推荐

  1. Eslint报错的翻译

    若在git中出现这个 http://eslint.org/docs/rules/eol-last 他是提醒你:在文件末尾要求或禁止换行 比如代码如下: 若在git中出现这个 https://eslin ...

  2. PHP实现选择排序的方法

    选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然 ...

  3. 50倍时空算力提升,阿里云RDS PostgreSQL GPU版本上线

    2019年3月19日,阿里云RDS PostgreSQL数据库GPU规格版本正式上线,开启了RDS异构计算并行加速之路.该版本在RDS(关系型数据库服务)的云基础设施层面首次完成了与阿里云异构计算产品 ...

  4. SQL知识总结(1)

    什么是数据库: sql组成: DDL:数据定义语句,有CREATE/DROP等: DML:数据操作语句,有DELETE/UPDATE/INSERT/INSERT等; DQL:数据查询语句,有SELEC ...

  5. op应用:官方,wifidog,portal,uci,luci,脚本,框架,usb

    http://wiki.openwrt.org/doc/starthttp://downloads.openwrt.org/docs/buildroot-documentation.htmlhttp: ...

  6. leaflet的入门开发

    2016年9月27日—1.0leaflet,最快的,最稳定和严谨的leaflet,终于出来了! leaflet是领先的开源JavaScript库为移动设备设计的互动地图.重33 KB的JS,所有映射大 ...

  7. blogbeta1

    //html <!DOCTYPE html> blog 身高:170 体重:230 座右铭 再给我吃一口 关于我 微信 微博 标签 SM SP 重金求爹 2019/11/16 本人找爹,带 ...

  8. jQuery圆盘抽奖

    在线演示 本地下载

  9. txt改后缀弹窗表白

    one. 打开新建的文本文件,输入字符:msgbox("此处可替换成你想要出现的文字"),括号和引号是英文状态下的标点.(可根据自己的需要输入多行) two. 保存新建的文本文件, ...

  10. oracle-17113错误

    Errors in file /oracle/OraHome1/admin/hncrm/udump/hncrm_ora_24470.trc: ORA-00600: internal error cod ...