原生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实现检测指定目录是否存在的方法
Jan 12 Javascript
javascript 全角转换实现代码
Jul 17 Javascript
10个基于浏览器的JavaScript调试工具分享
Feb 07 Javascript
jQuery简单实现网页选项卡特效
Nov 24 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
Jan 05 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
Dec 26 Javascript
ES6中module模块化开发实例浅析
Apr 06 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
vue组件间通信子与父详解(二)
Nov 07 Javascript
angularjs实现分页和搜索功能
Jan 03 Javascript
node.js express框架实现文件上传与下载功能实例详解
Oct 15 Javascript
解决VueCil代理本地proxytable无效报错404的问题
Nov 07 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
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
Ext.MessageBox工具类简介
2009/12/10 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
详解Webpack + ES6 最新环境搭建与配置
2018/06/04 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
js实现简单图片拖拽效果
2021/02/22 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
python实现按行切分文本文件的方法
2016/04/18 Python
Python用Pillow(PIL)进行简单的图像操作方法
2017/07/07 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
python logging通过json文件配置的步骤
2020/04/27 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
中国入世承诺
2014/04/01 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
数字化校园建设方案
2014/05/03 职场文书
小学优秀班干部事迹材料
2014/05/25 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
详解nginx location指令
2022/01/18 Servers