无缝滚动案例
CSS
<style>
*{
margin: 0px;
padding:0px;
list-style: none;
}
div{
width: 600px;
height: 200px;
margin:100px auto;
border:1px solid red;
}
body{
background: black;
}
ul{
width:9999px;
}
ul li{
width:300px;
height: 200px;
float: left;
}
li:nth-of-type(1),li:nth-of-type(5){
background:rgb(245, 105, 105);
}
li:nth-of-type(2),li:nth-of-type(6){
background:rgb(141, 124, 240);
}
li:nth-of-type(3){
background:rgb(234, 243, 150);
}
li:nth-of-type(4){
background:rgb(212, 250, 151);
}
</style>
HTML
<div>
<ul id="box">
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
JS
<script>
var num=0;
var timer;
var box=document.getElementById('box');
var tags=document.getElementsByTagName('li');
function fn(){
timer=setInterval(function(){
console.log(num);
num-=3;
if(num<=-1200){
num=0;
}
// ul移动
box.style.transform=`translateX(${num}px)`;
},30);
}
fn();
// 遍历
for(var i=0;i<tags.length;i++){
tags[i].onmouseenter=function(){
// 停止定时器
clearInterval(timer)
for(var j=0;j<tags.length;j++){
tags[j].style.opacity=0.3;
}
this.style.opacity=1;
}
}
// 鼠标移出变正常
box.onmouseleave=function(){
fn();
for(var j=0;j<tags.length;j++){
tags[j].style.opacity=1;
}
}
</script>