一、效果图
二、使用CSS实现
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>图片无缝滚动</title> <style type="text/css"> *{ margin: 0px; padding: 0px; } #con{ width: 800px; margin: auto; margin-top: 100px; /* 超出div的部分隐藏 */ overflow: hidden; height: 158px; } li{ list-style: none; float: left; } img{ width: 240px; height: 150px; margin: 5px; border-radius: 5px; } ul{ width: 2500px; } /* 动画播放状态 */ ul:hover{ cursor: pointer; /* 当鼠标移动到图片上时动画停止 */ animation-play-state:paused; } /* 实现动画 */ #ul{ /* 动画名称 ,在定义关键帧动画时需要使用*/ animation-name: moveleft; /* 动画持续时间 */ animation-duration: 10s; /* 设置动画速度曲线:线性 */ animation-timing-function: linear; /* 动画的播放次数:无限次 */ animation-iteration-count: infinite; /* 动画的奇偶轮流播放:奇数次正向播放,偶数次反向播放 */ /* animation-direction: alternate; */ } /* 定义关键帧动画 */ @keyframes moveleft{ /* ul从左边0位置到左边-1250px位置 */ from{ margin-left: 0px; } to{ margin-left: -1250px; } } </style> </head> <body> <div id="con"> <ul id="ul"> <li><img src="../img/21.jpg" ></li> <li><img src="../img/22.jpg" ></li> <li><img src="../img/23.jpg" ></li> <li><img src="../img/24.jpg" ></li> <li><img src="../img/25.jpg" ></li> <li><img src="../img/21.jpg" ></li> <li><img src="../img/22.jpg" ></li> <li><img src="../img/23.jpg" ></li> <li><img src="../img/24.jpg" ></li> <li><img src="../img/25.jpg" ></li> </ul> </div> </body> </html>
三、使用jQuery实现
HTML和css代码:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>图片无缝滚动</title> <script src="../js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script> <script src="../js/图片无缝滚动.js" type="text/javascript" charset="utf-8"></script> <style type="text/css"> *{ margin: 0px; padding: 0px; } #con{ width: 800px; margin: auto; margin-top: 100px; overflow: hidden; height: 158px; } li{ list-style: none; float: left; } img{ width: 240px; height: 150px; margin: 5px; border-radius: 5px; } ul{ width: 2500px; cursor: pointer; } </style> </head> <body> <div id="con"> <ul id="ul"> <li><img src="../img/21.jpg" ></li> <li><img src="../img/22.jpg" ></li> <li><img src="../img/23.jpg" ></li> <li><img src="../img/24.jpg" ></li> <li><img src="../img/25.jpg" ></li> <li><img src="../img/10.jpg" ></li> <li><img src="../img/21.jpg" ></li> <li><img src="../img/22.jpg" ></li> <li><img src="../img/23.jpg" ></li> <li><img src="../img/24.jpg" ></li> <!-- <li><img src="../img/25.jpg" ></li> --> </ul> </div> </body> </html>
js代码:
var move; var lv = 0; $(function() { //第一种方法 //move = setInterval("moveLeft()", 5); //第二种方法 move(); }); //方法一 function moveLeft() { var ul = $("ul"); var li = $("li"); lv += 1; //获取ul的左边距 if (lv > 1500) { lv = 0; } $("ul").css("margin-left", -lv + "px"); ul.mouseover(function(){ $("ul").css({"animationPlayState":"paused"}); }) } //方法二 function move(){ //鼠标移入移出事件 $("ul").mouseover(function(){ $(this).stop(true); }); $("ul").mouseout(function(){ move(); }); //获取ul绑定动画往左移动 $("ul").animate({marginLeft:-1500},3000); $("ul").animate({marginLeft:0},0,move); }