本文实例为大家分享了js实现表格循环滚动的具体代码,供大家参考,具体内容如下
css
1
2
3
4
5
|
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布局
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
< 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代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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); |
解析思路图
然后滚动....
偷偷改到初始的位置(也就是:不用过渡动画把top改为0,改后恢复正常过渡动画滚动)
一些轮播图也可以用这个思路(我才不会告诉你,,其实这个思路就是从轮播图得来的),想看轮播图思路的把上面思路图转动90°就OK了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_44390947/article/details/88320369