HTML代碼循環(huán)向右滾動,可以通過CSS和JavaScript的組合實現(xiàn)。
<div class="scroll-wrap"> <div class="scroll-content"> // 循環(huán)滾動的內(nèi)容 <ul> <li>第一行</li> <li>第二行</li> <li>第三行</li> </ul> </div> </div> <style> .scroll-wrap { margin: 0 auto; overflow: hidden; position: relative; width: 80%; } .scroll-content { position: absolute; white-space: nowrap; width: calc(100% - 15px); // 減去滾動條的寬度 } .scroll-content ul { animation: marquee 15s linear infinite; display: inline-block; margin: 0; padding: 0; } .scroll-content li { display: inline-block; list-style: none; margin-right: 50px; // 每個元素之間的距離 } @keyframes marquee { 0% { transform: translateX(0%); } 100% { transform: translateX(-100%); } } </style>
以上代碼中,先用div元素包裹一個滾動框的內(nèi)容。用CSS設置外層div元素的屬性,比如寬度等。使用overflow:hidden來確保內(nèi)容溢出不會影響其他內(nèi)容。內(nèi)層的div元素設置絕對定位屬性,以便可以控制其位置。ul元素則使用CSS的動畫屬性animation來實現(xiàn)循環(huán)滾動。
具體來說,需要通過keyframes屬性來定義關鍵幀(即動畫開始和結(jié)束時的狀態(tài)),用transform來實現(xiàn)滾動的效果。這里設置從0%到100%的移動,每15秒循環(huán)一次。
// JavaScript代碼 let scrollInterval; let scrollWrap = document.querySelector('.scroll-wrap'); let scrollContent = document.querySelector('.scroll-content'); function startScroll() { scrollInterval = setInterval(function() { scrollWrap.scrollLeft += 1; if (scrollWrap.scrollLeft >= scrollContent.offsetWidth - scrollWrap.offsetWidth) { scrollWrap.scrollLeft = 0; } }, 10); // 每1/100秒滾動一次 } scrollWrap.addEventListener('mouseenter', function() { clearInterval(scrollInterval); }); scrollWrap.addEventListener('mouseleave', function() { startScroll(); }); startScroll();
當然,如果需要讓滾動停止/開始,可以再用JavaScript處理。這里用setInterval方法控制每隔一段時間移動滾動條。將鼠標懸停在滾動區(qū)域時,停止?jié)L動,移開時再開始。
上一篇vue canvas截圖
下一篇vue canvas氣泡