原生js實(shí)現(xiàn)表格循環(huán)滾動(dòng)
本文實(shí)例為大家分享了js實(shí)現(xiàn)表格循環(huán)滾動(dòng)的具體代碼,供大家參考,具體內(nèi)容如下
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];//要滾動(dòng)的表
var tbody = sTab.getElementsByTagName('tbody')[0];//要滾動(dòng)表格的內(nèi)容
sTab.appendChild(tbody.cloneNode(true));//追加一次滾動(dòng)內(nèi)容,以防滾動(dòng)后可視區(qū)域無(wú)內(nèi)容
var speed = sTab.getElementsByTagName('td')[0].offsetHeight+3;//每次滾動(dòng)的距離
var tbdh = tbody.offsetHeight+1;//整個(gè)表的高度,是因?yàn)樯线叺倪叢凰銤L動(dòng)
function scrollTop() {
var t = sTab.offsetTop;//獲取要滾動(dòng)表的位置
if (-tbdh == t) {//比較 滾動(dòng)的距離等于整個(gè)表的高度 即第一個(gè)表完全看不見(jiàn)
sTab.style.transition = '0s';//過(guò)渡動(dòng)畫(huà)設(shè)為0秒
sTab.style.top = 0;//位置設(shè)為初始位置
scrollTop();//因?yàn)橥盗簱Q柱消耗了一次過(guò)程,所以把這一次過(guò)程補(bǔ)回來(lái)
}else{
sTab.style.transition = '1s';
sTab.style.top = t - speed + 'px';
}
}
setInterval(scrollTop, 1000);
解析思路圖

然后滾動(dòng)....

偷偷改到初始的位置(也就是:不用過(guò)渡動(dòng)畫(huà)把top改為0,改后恢復(fù)正常過(guò)渡動(dòng)畫(huà)滾動(dòng))

一些輪播圖也可以用這個(gè)思路(我才不會(huì)告訴你,,其實(shí)這個(gè)思路就是從輪播圖得來(lái)的),想看輪播圖思路的把上面思路圖轉(zhuǎn)動(dòng)90°就OK了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
70+漂亮且極具親和力的導(dǎo)航菜單設(shè)計(jì)國(guó)外網(wǎng)站推薦
網(wǎng)站可用性是任何網(wǎng)站的基本要素,而可用的導(dǎo)航更是網(wǎng)站所必需的要素之一。導(dǎo)航?jīng)Q定了用戶如何與網(wǎng)站進(jìn)行交互。如果沒(méi)有了可用的導(dǎo)航,那么網(wǎng)站內(nèi)容就會(huì)變得毫無(wú)用處。2011-09-09
環(huán)形加載進(jìn)度條封裝(Vue插件版和原生js版)
這篇文章主要為大家詳細(xì)介紹了環(huán)形加載進(jìn)度條封裝,Vue插件版,原生js版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
JS輸出空格的簡(jiǎn)單實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇JS輸出空格的簡(jiǎn)單實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
javascript中的綁定與解綁函數(shù)應(yīng)用示例
本文為大家詳細(xì)介紹下javascript中綁定與解綁函數(shù)在Ie及Mozilla中的應(yīng)用,感興趣的各位可以參考下哈,希望對(duì)大家有所幫助2013-06-06
JavaScript基于面向?qū)ο髮?shí)現(xiàn)的無(wú)縫滾動(dòng)輪播示例
這篇文章主要介紹了JavaScript基于面向?qū)ο髮?shí)現(xiàn)的無(wú)縫滾動(dòng)輪播,結(jié)合實(shí)例形式分析了JavaScript面向?qū)ο髮?shí)現(xiàn)的無(wú)縫滾動(dòng)輪播相關(guān)對(duì)象定義、初始化及功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-01-01
JavaScript利用Date實(shí)現(xiàn)簡(jiǎn)單的倒計(jì)時(shí)實(shí)例
在日常開(kāi)發(fā)的時(shí)候經(jīng)常遇到關(guān)于倒計(jì)時(shí)的需求,下面這篇文章就給主要介紹了JavaScript利用Date實(shí)現(xiàn)倒計(jì)時(shí)效果的方法示例,文中主要實(shí)現(xiàn)了倒計(jì)時(shí)和倒計(jì)時(shí)結(jié)束搶購(gòu)的按鈕才可以被點(diǎn)擊的效果,有需要的朋友可以參考借鑒。2017-01-01
Postman自動(dòng)化接口測(cè)試實(shí)戰(zhàn)
有時(shí)我們可能需要在多個(gè)環(huán)境下對(duì)同一個(gè)接口進(jìn)行測(cè)試。比如我們請(qǐng)求的域名,開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境,請(qǐng)求參數(shù)。文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11

