原生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 相关文章推荐
js中运算符&amp;&amp; 和 || 的使用记录
Aug 21 Javascript
jquery动态分页效果堪比时光网
Sep 25 Javascript
JS设置cookie、读取cookie、删除cookie
Apr 17 Javascript
JavaScript对HTML DOM使用EventListener进行操作
Oct 21 Javascript
jQuery拖动元素并对元素进行重新排序
Dec 30 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 Javascript
JavaScript实现垂直向上无缝滚动特效代码
Nov 23 Javascript
JavaScript框架Angular和React深度对比
Nov 20 Javascript
Vue仿今日头条实例详解
Feb 06 Javascript
Vue中父子组件通讯之todolist组件功能开发
May 21 Javascript
Angular6新特性之Angular Material
Dec 28 Javascript
Vue.js中Line第三方登录api的实现代码
Jun 29 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
JAVA/JSP学习系列之六
2006/10/09 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
layui框架中layer父子页面交互的方法分析
2017/11/15 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
django 发送手机验证码的示例代码
2018/04/25 Python
Python日志模块logging基本用法分析
2018/08/23 Python
编写多线程Python服务器 最适合基础
2018/09/14 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
Python如何爬取b站热门视频并导入Excel
2020/08/10 Python
香港交友网站:be2香港
2018/07/22 全球购物
一套PHP的笔试题
2013/05/31 面试题
实习期自我鉴定
2013/10/11 职场文书
农救科工作职责
2013/11/27 职场文书
销售人员职业生涯规划范文
2014/03/01 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
北京天坛导游词
2015/02/12 职场文书
研究生给导师的自荐信
2015/03/06 职场文书