原生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 相关文章推荐
jquery中获取id值方法小结
Sep 22 Javascript
js计算两个时间之间天数差的实例代码
Nov 19 Javascript
老生常谈javascript的类型转换
Oct 12 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
Oct 12 Javascript
分类解析jQuery选择器
Nov 23 Javascript
jquery表单验证实例仿Toast提示效果
Mar 03 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
Dec 03 Javascript
vue的keep-alive中使用EventBus的方法
Apr 23 Javascript
js设置默认时间跨度过程详解
Jul 17 Javascript
layui动态加载多表头的实例
Sep 05 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
Aug 14 Javascript
Vue指令实现OutClick的示例
Nov 16 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
php实现rc4加密算法代码
2012/04/25 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
JavaScript 继承的实现
2009/07/09 Javascript
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
基于WebUploader的文件上传js插件
2016/08/19 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
python远程登录代码
2008/04/29 Python
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
基于python历史天气采集的分析
2019/02/14 Python
Python实现字符型图片验证码识别完整过程详解
2019/05/10 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
Python中格式化字符串的四种实现
2020/05/26 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
HTML5+lufylegend实现游戏中的卷轴
2016/02/29 HTML / CSS
物业经理自我鉴定
2014/03/03 职场文书
代理人委托书
2014/08/01 职场文书
本科应届生求职信
2014/08/05 职场文书
个人委托书范本汇总
2014/10/01 职场文书
教务处教学工作总结
2015/08/10 职场文书
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS