<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>左右无缝滚动</title>
<style>
* {
margin: 0%;
padding: 0%;
}
#div1 {
position: relative;
border: 1px black solid;
width: 680px;
height: 132px;
margin: 10px auto;
}
#div1 ul {
position: absolute;
left: 0;
}
#div1 ul li {
list-style: none;
float: left;
width: 150px;
height: 112px;
padding: 10px;
}
#div1 ul li img {
width: 150px;
}
</style>
<script>
window.onload = function () {
var oDiv = document.getElementById('div1');
var oUl = oDiv.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li');
var iSpeed = 10;
var timer = null;
oUl.innerHTML += oUl.innerHTML; //自我复制一份
oUl.style.width = aLi.length * aLi[0].offsetWidth + 'px';
timer = setInterval(function () {
if (oUl.offsetLeft < -oUl.offsetWidth / 2) { //当此整体刚好出去一般的时候触发条件:此时整个图层还原原来的位置
oUl.style.left = 0;
} else if (oUl.offsetLeft > 0) {//这里是当向右滚动时,返回
oUl.style.left = -oUl.offsetWidth / 2;
}
oUl.style.left = oUl.offsetLeft + iSpeed + 'px';
}, 30)
}
</script>
</head>
<body>
<div id="div1">
<ul>
<li><img src="image/1.jpg" alt="a" /></li>
<li><img src="image/2.jpg" alt="a" /></li>
<li><img src="image/3.jpg" alt="a" /></li>
<li><img src="image/4.jpg" alt="a" /></li>
</ul>
</div>
</body>
</html>
问题已解决:oUl.style.left = -oUl.offsetWidth / 2 + 'px';