为什么我的代码只会跑一遍
来源:6-2 无缝连续滚动特效
DanielDu87
2022-08-15 15:06:24
<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>document</title>
<link href="" rel="stylesheet">
</head>
<style>
* {
margin: 0;
padding: 0;
}
.box {
/*overflow: hidden;*/
width: 1250px;
height: 130px;
margin: 10px auto;
border: 10px solid red;
background-color: orange;
}
ul {
/*设置相对定位才能使用left控制位置*/
position: relative;
width: 3000px;
height: 150px;
margin: 0 auto;
}
ul li {
float: left;
margin-right: 10px;
list-style: none;
}
ul li:last-child {
margin-right: 0;
}
</style>
<body>
<div class="box">
<ul>
<li><img alt="" src="../images/number/0.png"></li>
<li><img alt="" src="../images/number/1.png"></li>
<li><img alt="" src="../images/number/2.png"></li>
<li><img alt="" src="../images/number/3.png"></li>
<li><img alt="" src="../images/number/4.png"></li>
<li><img alt="" src="../images/number/5.png"></li>
</ul>
</div>
<script>
var ul_box = document.querySelector("ul");
//克隆一份
ul_box.innerHTML += ul_box.innerHTML;
//全局变量,表示当前ul_box的left值
var ul_left = 0;
//定时器
var timer;
//动画封装成函数
function move() {
//设表先关
clearInterval(timer);
timer = setInterval(function () {
//每次移动的宽度:向左移动10*20px
ul_left -= 10;
//判断是否到达最右边
ul_box.style.left = ul_left + "px";
if (ul_left <= -1260) {
//如果到达最右边,将left值设置为0
ul_box.style.left = "0";
}
}, 20);
}
//开始动画
move();
// 鼠标进入停止;
ul_box.onmouseenter = function () {
clearInterval(timer);
};
//鼠标离开继续定时器
ul_box.onmouseleave = function () {
//定时器代码放入函数
move();
};
</script>
</body>
</html>1回答
imooc_慕慕
2022-08-15
同学你好,解答如下:
当验收的时候,将设置的全局变量ul_left设置为0,不是将ul元素的left值设置为0;修改参考如下:

祝学习愉快~
相似问题