js實現列表自動滾動循環播放
本文實例為大傢分享瞭js實現列表自動滾動循環播放的具體代碼,供大傢參考,具體內容如下
1.實現效果圖
鼠標移入,暫停滾動; 鼠標移出,繼續滾動;
2.原理
- 要實現無縫銜接,在原有ul後面還要有一個一樣內容的ul;
- 最外層div為可視區域,設overflow:hidden;
- 2個ul的高度 > 外層可視div高度,才能滾動;
3.實現代碼
html:
<!-- vue --> <div id="review_box" @mouseover="rollStop()" @mouseout="rollStart(60)"> <ul id="comment1"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> <ul id="comment2"></ul> </div>
css:
div { height: 100px; /* 必須 */ overflow: hidden;/* 必須 */ }
js:
//vue data data (){ return { timer: null, } }, mounted() { this.roll(60); }, beforeDestroy() { if (this.timer) clearInterval(this.timer); }, //vue methods roll(t) { var ul1 = document.getElementById("comment1"); var ul2 = document.getElementById("comment2"); var ulbox = document.getElementById("review_box"); ul2.innerHTML = ul1.innerHTML; ulbox.scrollTop = 0; this.rollStart(t); }, rollStart(t) { var ul1 = document.getElementById("comment1"); var ul2 = document.getElementById("comment2"); var ulbox = document.getElementById("review_box"); this.rollStop(); this.timer = setInterval(()=>{ // 當滾動高度大於列表內容高度時恢復為0 if (ulbox.scrollTop >= ul1.scrollHeight) { ulbox.scrollTop = 0; } else { ulbox.scrollTop++; } }, t); }, rollStop(){ clearInterval(this.timer); },
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。