原生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 相关文章推荐
jQuery 方法大全方便学习参考
Feb 25 Javascript
jquery图片放大功能简单实现
Aug 01 Javascript
jQuery隐藏和显示效果实现
Apr 06 Javascript
JS表格组件神器bootstrap table详解(强化版)
May 26 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
Jul 26 Javascript
node+koa实现数据mock接口的方法
Sep 20 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
Jan 24 Javascript
react+redux仿微信聊天界面
Jun 21 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
Aug 26 Javascript
axios封装与传参示例详解
Oct 18 Javascript
jQuery实现简单弹幕制作
Dec 10 jQuery
浅析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
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
php使用QueryList轻松采集js动态渲染页面方法
2018/09/11 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
PHP7 其他修改
2021/03/09 PHP
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
Django如何实现内容缓存示例详解
2017/09/24 Python
opencv python 基于KNN的手写体识别的实例
2018/08/03 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
浅谈Python中的bs4基础
2018/10/21 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
特步官方商城:Xtep
2017/03/21 全球购物
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
优秀班主任推荐材料
2014/12/17 职场文书
死者家属慰问信
2015/03/24 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript