原生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.net后台)
Jan 27 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
Feb 06 Javascript
Jquery validation remote 验证的缓存问题解决方法
Mar 25 Javascript
javascript 中that的含义示例介绍
May 14 Javascript
js实现跨域的方法实例详解
Jun 24 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
关于js函数解释(包括内嵌,对象等)
Nov 20 Javascript
详谈JavaScript的闭包及应用
Jan 17 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
Jan 30 Javascript
微信小程序使用GoEasy实现websocket实时通讯
May 19 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
Aug 11 Javascript
vue前端工程的搭建
Mar 31 Vue.js
浅析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
php删除数组中重复元素的方法
2015/12/22 PHP
php实现留言板功能
2017/03/05 PHP
javascript 混合的构造函数和原型方式,动态原型方式
2009/12/07 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
react-native DatePicker日期选择组件的实现代码
2017/09/12 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
2017/11/24 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
如何搜索查找并解决Django相关的问题
2014/06/30 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
详解python中的装饰器
2018/07/10 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
python 生成正态分布数据,并绘图和解析
2020/12/21 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
Puma印度官网:德国运动品牌
2019/10/06 全球购物
文员的职业生涯规划发展方向
2014/02/08 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
担保书怎么写
2014/04/01 职场文书
社区志愿者活动总结
2014/06/26 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
代办委托书怎么写
2014/08/01 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
清明节寄语2015
2015/03/23 职场文书
Python requests用法和django后台处理详解
2022/03/19 Python