原生js实现表格循环滚动


Posted in Javascript onNovember 24, 2020

本文实例为大家分享了js实现表格循环滚动的具体代码,供大家参考,具体内容如下

css

table{width: 500px;border: 1px solid gray;border-collapse: collapse;}
th,td{line-height: 35px;border: 1px solid gray;text-align: center;width: 120px;}
.scroll-box{height: 280px;width: 500px;overflow: hidden;position: relative;}
.tab-scroll{position: absolute;left: 0;top: 0;border-top: none;}
.tab-scroll td{border-top: none;}

html布局

<table class="top">
 <thead>
 <tr>
 <th>ID</th>
 <th>姓名</th>
 <th>年龄</th>
 <th>住址</th>
 </tr>
 </thead>
 </table>
 <div class="scroll-box">
 <table class="tab-scroll">
 <tbody>
 <tr>
 <td>1001</td>
 <td>李四</td>
 <td>AAAA</td>
 <td>AAAA</td>
 </tr>
 <tr>
 <td>1002</td>
 <td>王五</td>
 <td>AAAA</td>
 <td>AAAA</td>
 </tr>
 <tr>
 <td>1003</td>
 <td>王五</td>
 <td>AAAA</td>
 <td>AAAA</td>
 </tr>
 <tr>
 <td>1004</td>
 <td>Jack</td>
 <td>AAAA</td>
 <td>AAAA</td>
 </tr>
 <tr>
 <td>1005</td>
 <td>小兰</td>
 <td>AAAA</td>
 <td>AAAA</td>
 </tr>
 <tr>
 <td>1006</td>
 <td>王五</td>
 <td>AAAA</td>
 <td>AAAA</td>
 </tr>
 <tr>
 <td>1007</td>
 <td>王五</td>
 <td>AAAA</td>
 <td>AAAA</td>
 </tr>
 <tr>
 <td>1008</td>
 <td>Jack</td>
 <td>AAAA</td>
 <td>AAAA</td>
 </tr>
 <tr>
 <td>1009</td>
 <td>小兰</td>
 <td>AAAA</td>
 <td>AAAA</td>
 </tr>
 </tbody>
 </table>
</div>

js代码

var sTab = document.getElementsByClassName('tab-scroll')[0];//要滚动的表
 var tbody = sTab.getElementsByTagName('tbody')[0];//要滚动表格的内容
 sTab.appendChild(tbody.cloneNode(true));//追加一次滚动内容,以防滚动后可视区域无内容
 var speed = sTab.getElementsByTagName('td')[0].offsetHeight+3;//每次滚动的距离
 var tbdh = tbody.offsetHeight+1;//整个表的高度,是因为上边的边不算滚动
 
 function scrollTop() {
 var t = sTab.offsetTop;//获取要滚动表的位置
 if (-tbdh == t) {//比较 滚动的距离等于整个表的高度 即第一个表完全看不见
 sTab.style.transition = '0s';//过渡动画设为0秒
 sTab.style.top = 0;//位置设为初始位置
 scrollTop();//因为偷梁换柱消耗了一次过程,所以把这一次过程补回来
 }else{
 sTab.style.transition = '1s';
 sTab.style.top = t - speed + 'px';
 }
 }
setInterval(scrollTop, 1000);

解析思路图

原生js实现表格循环滚动

然后滚动....

原生js实现表格循环滚动

 偷偷改到初始的位置(也就是:不用过渡动画把top改为0,改后恢复正常过渡动画滚动)

原生js实现表格循环滚动

一些轮播图也可以用这个思路(我才不会告诉你,,其实这个思路就是从轮播图得来的),想看轮播图思路的把上面思路图转动90°就OK了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
利用ASP发送和接收XML数据的处理方法与代码
Nov 13 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
Jan 02 Javascript
图片在浏览器中底部对齐 解决方法之一
Nov 30 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
jQuery团购倒计时特效实现方法
May 07 Javascript
利用CSS3在Angular中实现动画
Jan 15 Javascript
layui.js实现的表单验证功能示例
Nov 15 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
vue  elementUI 表单嵌套验证的实例代码
Nov 06 Javascript
JS实现横向轮播图(初级版)
Jun 24 Javascript
微信小程序实现聊天室
Aug 21 Javascript
vue 获取元素额外生成的data-v-xxx操作
Sep 09 Javascript
浅析VUE防抖与节流
Nov 24 #Vue.js
解决vue页面刷新,数据丢失的问题
Nov 24 #Vue.js
Js利用正则表达式去除字符串的中括号
Nov 23 #Javascript
jQuery实现动态操作table行
Nov 23 #jQuery
JavaScript前后端JSON使用方法教程
Nov 23 #Javascript
微信小程序实现简单的select下拉框
Nov 23 #Javascript
记录一次websocket封装的过程
Nov 23 #Javascript
You might like
接收键盘指令的脚本
2006/06/26 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
python切换hosts文件代码示例
2013/12/31 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
python学习教程之使用py2exe打包
2017/09/24 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
python和php哪个更适合写爬虫
2020/06/22 Python
Python如何合并多个字典或映射
2020/07/24 Python
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
女大学生个人求职信
2013/12/09 职场文书
高一自我鉴定
2013/12/17 职场文书
求职信怎么写范文
2014/05/26 职场文书
幼儿园课题方案
2014/06/09 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
python 下载文件的几种方式分享
2021/04/07 Python