原生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 相关文章推荐
分享14个很酷的jQuery导航菜单插件
Apr 25 Javascript
jquery 无限级联菜单案例分享
Mar 26 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
Mar 16 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
Aug 25 Javascript
详解JavaScript的变量和数据类型
Nov 27 Javascript
微信小程序开发探究
Dec 27 Javascript
微信小程序商品详情页规格属性选择示例代码
Oct 30 Javascript
Vue用v-for给src属性赋值的方法
Mar 03 Javascript
vue中的过滤器实例代码详解
Jun 06 Javascript
JS判断浏览器类型与操作系统的方法分析
Apr 30 Javascript
vue缓存之keep-alive的理解和应用详解
Nov 02 Javascript
什么是SOLID
Mar 24 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
获取URL文件名后缀
2013/10/24 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
Knockout数组(observable)使用详解示例
2013/11/15 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
nodeJs实现基于连接池连接mysql的方法示例
2018/02/10 NodeJs
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
ES6 新增的创建数组的方法(小结)
2019/08/01 Javascript
JavaScript如何操作css
2020/10/24 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
JS实现简易日历效果
2021/01/25 Javascript
让python 3支持mysqldb的解决方法
2017/02/14 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
HTML5 canvas基本绘图之绘制五角星
2016/06/27 HTML / CSS
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
初中家长寄语
2014/04/02 职场文书
施工安全责任书
2014/04/14 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python
如何利用python实现列表嵌套字典取值
2022/06/10 Python