效果图:
需求分析:
- 实现无缝滚动
源代码:
- HTML部分
<div id="box">
<ul id="u">
<li><img src="a.jpg" alt="" /></li>
<li><img src="b.jpg" alt="" /></li>
<li><img src="c.jpg" alt="" /></li>
<li><img src="d.jpg" alt="" /></li>
<!-- 思路:克隆所有的li放在最后一个li的后面 -->
<li><img src="a.jpg" alt="" /></li>
<li><img src="b.jpg" alt="" /></li>
<li><img src="c.jpg" alt="" /></li>
<li><img src="d.jpg" alt="" /></li>
</ul>
</div>
- css部分
<style>
*{
margin:0;
padding:0;
}
div{
width:600px;
height:200px;
position:relative;
border:1px solid red;
margin:100px;
overflow:hidden;
}
ul{
width:600%;
position:absolute;
left:0;
}
li{
float:left;
list-style:none;
}
</style>
- JavaScript部分
- 为了简化代码,先封装一些常用的自定义构造函数
<script>
//无
</script>
- js主体部分,需要用到封装的函数,调用即可
<script>
var ul = document.getElementById('u');
// 通过定位来移动ul位置,每隔一段时间ul的left增加-2
setInterval(function(){
//图片width=300px,4张图片总width=1200px
if(ul.offsetLeft<=-1200){//当向左移动过的图片总width超过1200px
ul.style.left = 0;//闪回第一张图片,从新开始
}else{
ul.style.left = (ul.offsetLeft - 2)+'px';//ul的left增加-2,即向左移动2px
}
},20)
</script>
- 总代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<style>
* {
margin: 0;
padding: 0;
}
div {
width: 600px;
height: 200px;
position: relative;
border: 1px solid red;
margin: 100px;
overflow: hidden;
}
ul {
width: 600%;
position: absolute;
left: 0;
}
li {
float: left;
list-style: none;
}
</style>
<body>
<div id="box">
<ul id="u">
<li><img src="a.jpg" alt="" /></li>
<li><img src="b.jpg" alt="" /></li>
<li><img src="c.jpg" alt="" /></li>
<li><img src="d.jpg" alt="" /></li>
<!-- 思路:克隆所有的li放在最后一个li的后面 -->
<li><img src="a.jpg" alt="" /></li>
<li><img src="b.jpg" alt="" /></li>
<li><img src="c.jpg" alt="" /></li>
<li><img src="d.jpg" alt="" /></li>
</ul>
</div>
<script>
var ul = document.getElementById('u');
// 通过定位来移动ul位置,每隔一段时间ul的left增加-2
setInterval(function () {
//图片width=300px,4张图片总width=1200px
if (ul.offsetLeft <= -1200) {//当向左移动过的图片总width超过1200px
ul.style.left = 0;//闪回第一张图片,从新开始
} else {
ul.style.left = (ul.offsetLeft - 2) + 'px';//ul的left增加-2,即向左移动2px
}
}, 20)
</script>
</body>
</html>
所用图片:
由于你们没有图片,直接复制代码,展示不出效果,大家可以自己找几张图片来代替,稍微修改下即可,只要能看得懂代码,修改起来莫得问题啦