原生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 相关文章推荐
Javascript 中文字符串处理额外注意事项
Nov 15 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
Nov 21 Javascript
用js判断是否为360浏览器的实现代码
Jan 15 Javascript
调试JavaScript中正则表达式中遇到的问题
Jan 27 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
JavaScript对象封装的简单实现方法(3种方法)
Jan 03 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
Jan 12 Javascript
jQuery实现简单的抽奖游戏
May 05 jQuery
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
May 08 jQuery
详解Vue路由开启keep-alive时的注意点
Jun 20 Javascript
Vuejs中使用markdown服务器端渲染的示例
Nov 22 Javascript
design vue 表格开启列排序的操作
Oct 28 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
用cookies来跟踪识别用户
2006/10/09 PHP
用PHP进行MySQL删除记录操作代码
2008/06/07 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
python实现mysql的读写分离及负载均衡
2018/02/04 Python
python读取csv文件并把文件放入一个list中的实例讲解
2018/04/27 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
Pyspark读取parquet数据过程解析
2020/03/27 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
企业演讲比赛主持词
2014/03/18 职场文书
党支部活动策划方案
2014/08/18 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
大学生操行评语大全
2014/12/31 职场文书
校长师德表现自我评价
2015/03/05 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书