效果图
方法:使用动画效果,让第一幅图的宽度逐渐变为0px,然后将第一幅图添加至父元素末尾
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标题</title>
<link rel="stylesheet" href="../css/reset.css">
<script src="./jquery-3.4.1.min.js"></script>
<style type="text/css">
#box{
width: 800px; height: 300px;
margin: 200px auto;
position: relative;
overflow: hidden;
}
#box ul{
width: 3200px; height: 300px;
position: absolute; top: 0px; left: -800px;
}
#box ul li{
width: 800px; height: 300px; float: left;
}
#box ul li img{
width: 800px; height: 300px;;
}
</style>
<script>
$(function(){
// 滚动播放函数
function gunDongBoFang(){
$("#box ul li:first").animate({width:"0px"}, 1000, function(){
$("#box ul").append($("#box ul li:first").width("800px"));
});
};
// 定时器,每2秒执行一次
var time = setInterval(gunDongBoFang, 2000);
// 鼠标移入#box元素中,停止定时器
$("#box").mouseenter(function(){
clearInterval(time);
});
// 鼠标移出#box元素后,开始定时器
$("#box").mouseleave(function(){
// setInterval(gunDongBoFang, 1000); 错误写法,鼠标移入移出定时器会累加
//鼠标移出时,开始定时器,并将定时器赋值给time变量,而当鼠标再次移入时,则刚好删除上次的定时器,不会累加
time = setInterval(gunDongBoFang, 2000);
});
});
</script>
</head>
<body>
<div id="box">
<ul>
<li>
<a href="#">
<img src="https://www.51zxw.net/NewAn/UploadFiles/20200609/202006090520504133.jpg">
</a>
</li>
<li>
<a href="#">
<img src="https://www.51zxw.net/NewAn/UploadFiles/20200608/202006080410588630.jpg">
</a>
</li>
<li>
<a href="#">
<img src="https://www.51zxw.net/NewAn/UploadFiles/20200608/202006080408097382.jpg">
</a>
</li>
<li>
<a href="#">
<img src="https://www.51zxw.net/NewAn/UploadFiles/20200624/202006240832286533.jpg">
</a>
</li>
</ul>
</div>
</body>
</html>
reset.css
*{margin: 0; padding: 0; box-sizing: border-box;}
body{font-size:16px; font-family:"微软雅黑"; color: #333;}
b{font-weight: normal;}
i{font-style: normal;}
a, a:hover, a:active{text-decoration: none; color: #333;}
input,textarea,select{outline: none;}
img{border: none; vertical-align: middle;}
li{list-style-type: none;}
.fl{float: left;}
.fr{float: right;}
.cl{clear: both;}
.clearfix::after{
content: "";
display: table;
clear: both;
}