原生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 对象模型 执行模型
Dec 06 Javascript
JQuery1.6 使用方法三
Nov 23 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
Jan 11 Javascript
jquery控制display属性为none或block
Mar 31 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
JS实现六边形3D拖拽翻转效果的方法
Sep 11 Javascript
使用jQuery实现购物车结算功能
Aug 15 jQuery
Vue2.0仿饿了么webapp单页面应用详细步骤
Jul 08 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
Apr 26 Javascript
通过Kettle自定义jar包供javascript使用
Jan 29 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
Nov 17 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
在线增减.htpasswd内的用户
2006/10/09 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
2013/08/15 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
JS实现隐藏同级元素后只显示JS文件内容的方法
2016/09/04 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
python算法学习之基数排序实例
2013/12/18 Python
Python批量修改文件后缀的方法
2014/01/26 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
Django app配置多个数据库代码实例
2019/12/17 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
孝老爱亲模范事迹
2014/01/24 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
《灰雀》教学反思
2016/02/19 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android