原生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 相关文章推荐
Node.js中创建和管理外部进程详解
Aug 16 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
Dec 18 Javascript
jquery点击缩略图切换视频播放特效代码分享
Sep 15 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
Jun 24 Javascript
XMLHttpRequest Level 2 使用指南
Aug 26 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
JS中的数组转变成JSON格式字符串的方法
May 09 Javascript
jQuery实现的简单在线计算器功能
May 11 jQuery
微信小程序按顺序同步执行的两种方式
Dec 20 Javascript
微信小程序实现加入购物车滑动轨迹
Nov 18 Javascript
Vue Mint UI mt-swipe的使用方式
Jun 05 Vue.js
浅析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中如何防止表单的重复提交
2013/08/02 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
Nuxt.js实战详解
2018/01/18 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
vue+element tabs选项卡分页效果
2020/06/29 Javascript
js实现日历
2020/11/07 Javascript
Django发送html邮件的方法
2015/05/26 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
Python实现合并两个有序链表的方法示例
2019/01/31 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
Internet体系结构
2014/12/21 面试题
大学新生欢迎词
2014/01/10 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
部门经理助理岗位职责
2015/04/13 职场文书
2016年度先进班组事迹材料
2016/03/01 职场文书