通过冗余数据使CSS实现无缝滚动
通过冗余数据使CSS实现无缝滚动,需要注意的是,滚动的是容器而不是元素
原理:滚动高度达到容器的50%时重新开始滚动
HTML结构
<div class="container"> <div class="wrapper"> <div class="marquee">通过冗余数据使CSS实现无缝滚动01</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动02</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动03</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动04</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动05</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动06</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动07</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动08</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动09</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动10</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动01</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动02</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动03</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动04</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动05</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动06</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动07</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动08</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动09</div> <div class="marquee">通过冗余数据使CSS实现无缝滚动10</div> </div> </div>
CSS
.container{ width: 360px; height: 216px; margin: 50px auto; border: 1px solid #ced4da; overflow: hidden; @keyframes marquee{ 0%{} 100%{ transform: translateY(-50%); } } .wrapper{ -webkit-animation: marquee 8s linear infinite; -moz-animation: marquee 8s linear infinite; animation: marquee 8s linear infinite; &:hover{ -webkit-animation-play-state: paused; -moz-animation-play-state: paused; animation-play-state: paused; } .marquee{ height: 36px; line-height: 36px; font-size: 16px; padding: 0 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; &:hover{ color: #dc3545; background-color: #e2e3e5; } } } }
效果