原生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ū)域無內(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è)表完全看不見
sTab.style.transition = '0s';//過渡動(dòng)畫設(shè)為0秒
sTab.style.top = 0;//位置設(shè)為初始位置
scrollTop();//因?yàn)橥盗簱Q柱消耗了一次過程,所以把這一次過程補(bǔ)回來
}else{
sTab.style.transition = '1s';
sTab.style.top = t - speed + 'px';
}
}
setInterval(scrollTop, 1000);
解析思路圖

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

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

一些輪播圖也可以用這個(gè)思路(我才不會(huì)告訴你,,其實(shí)這個(gè)思路就是從輪播圖得來的),想看輪播圖思路的把上面思路圖轉(zhuǎn)動(dòng)90°就OK了
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js實(shí)現(xiàn)根據(jù)文件url批量壓縮下載成zip包
本文主要介紹了js實(shí)現(xiàn)根據(jù)文件url批量壓縮下載成zip包,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Javascript下IE與Firefox下的差異兼容寫法總結(jié)
總結(jié)一部分IE和Firefox的javascript差異寫法,對(duì)于像書寫多瀏覽器兼容性更好的代碼,可以參考下。2010-06-06
TypeScript 引用資源文件后提示找不到的異常處理技巧
這篇文章主要介紹了TypeScript 引用資源文件后提示找不到的異常處理,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
JavaScript代碼簡單實(shí)現(xiàn)求楊輝三角給定行的最大值
求楊輝三角給定行的最大值的的方法或許有很多,下面使用js代碼簡單實(shí)現(xiàn)下,感興趣的朋友可以參考下2013-10-10
JS實(shí)現(xiàn)頁面內(nèi)跳轉(zhuǎn)的簡單代碼
這篇文章主要介紹了JS實(shí)現(xiàn)頁面內(nèi)跳轉(zhuǎn)的簡單代碼,需要的朋友可以參考下2017-09-09
js實(shí)現(xiàn)獲取最新本周周一開始的日期(單周日歷卡)
這篇文章主要為大家介紹了js實(shí)現(xiàn)獲取最新本周周一開始的日期(單周日歷卡)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
JS 實(shí)現(xiàn)導(dǎo)航菜單中的二級(jí)下拉菜單的幾種方式
這篇文章主要介紹了JS 實(shí)現(xiàn)導(dǎo)航菜單中的二級(jí)下拉菜單的幾種方式的相關(guān)資料,這里提供了三種方式,和實(shí)例代碼,需要的朋友可以參考下2016-10-10
JS控件bootstrap suggest plugin使用方法詳解
這篇文章主要介紹了JS控件bootstrap suggest plugin的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
微信小程序封裝的HTTP請(qǐng)求示例【附升級(jí)版】
這篇文章主要介紹了微信小程序封裝的HTTP請(qǐng)求,結(jié)合實(shí)例形式分析了微信小程序封裝基于wx.request方法的http請(qǐng)求相關(guān)操作與使用技巧,并附帶升級(jí)版示例供大家參考,需要的朋友可以參考下2019-05-05

