http://sandbox.runjs.cn/show/8coev0rq
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>无缝滚动.html</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
ul,li{
list-style-type: none;
}
.wrap{
1000px;
height: 300px;
margin: 100px auto 0;
position: relative;
overflow: hidden;
}
.wrap .slidewrap{
position: absolute;
top:0;
left: 0;
100%;
height:100%;
}
.wrap .slidewrap li{
500px;
height: 100%;
float: left;
text-align: center;
line-height: 300px;
font-size: 60px;
font-weight: 600;
}
.left,.right{
position: absolute;
top:50%;
margin-top: -20px;
left:50%;
40px;
height: 40px;
border:1px solid #ccc;
border-radius: 50%;
}
.left{
margin-left: -440px;
}
.right{
margin-left: 400px;
}
.left:before,.right:before{
position: absolute;
content:'';
20px;
height: 20px;
border:2px solid #ccc;
border-right:none;
border-bottom:none;
-webkit-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg);
top:50%;
left:50%;
margin-top:-10px;
margin-left: -8px;
}
.right:before{
-webkit-transform: rotate(135deg);
-ms-transform: rotate(135deg);
-o-transform: rotate(135deg);
transform: rotate(135deg);
margin-left: -15px;
}
.pagination{
position: absolute;
left:0;
100%;
bottom:20px;
text-align: center;
height:15px;
}
.pagination li{
15px;
height:15px;
border-radius: 50%;
margin:0 5px;
background-color: #fff;
display: inline-block;
*display: inline;
*zoom:1;
}
.pagination li.active{
background-color: #1B1A1A;
}
</style>
</head>
<body>
<div class="wrap">
<ul class="slidewrap">
<li style="background:#BBBBBB">1</li>
<li style="background:#9E9494">2</li>
<li style="background:#E8E7E7">3</li>
<li style="background:#565252">4</li>
<li style="background:#1F1818">5</li>
</ul>
<ul class="pagination"></ul>
<a class="left" href=""></a>
<a class="right" href=""></a>
</div>
<script type="text/javascript" src="js/jquery-1.8.1.js"></script>
<script type="text/javascript">
;(function(){
var myApp = function(){
var $ul = $('ul.slidewrap');
var $li = $ul.find('li');
var lilen = $li.length;
var $pagination = $('ul.pagination');
var $paginationli;
var liWidth = $li.width();
var timer;
var left = $('.left');
var right = $('.right');
var index = 0;
var flag = false;
var _getWidth = function(){
var liWidth = $li.width();
var ulWidth = liWidth*lilen;
$ul.width(ulWidth);
};
var isAnimate = function(obj){
if(obj.is(':animated')){
flag = true;
}else{
flag = false;
}
return flag;
}
var creatLi = function(){
for(var i = 0;i<lilen;i++){
$paginationli = $('<li></li>');
$pagination.append($paginationli)
}
$pagination.find('li:first').addClass('active');
}
var moveRight = function(){
if(isAnimate($ul)){
return false;
}
$pagination.find('li').removeClass('active');
index++;
if(index>lilen-1){
index = 0;
}
$pagination.find('li').eq(index).addClass('active');
$ul.animate({'left':-liWidth},1000,function(){
$(this).css('left',0).find('li').first().appendTo(this);
})
}
var moveLeft = function(){
if(isAnimate($ul)){
return false;
}
$pagination.find('li').removeClass('active');
index--;
if(index<0){
index = lilen-1;
}
$pagination.find('li').eq(index).addClass('active');
$ul.css('left',-liWidth).find('li').last().prependTo($ul);
$ul.animate({'left':0},1000,function(){
$(this).css('left',0);
});
}
var loop = function(){
timer = setInterval(moveRight,2000);
}
var ClickEvent = function(){
$(document).on('click','.right',function(event){
var e = event||window.event;
e.preventDefault()
clearInterval(timer);
moveRight();
});
$(document).on('click','.left',function(event){
var e = event||window.event;
e.preventDefault()
clearInterval(timer);
moveLeft();
});
}
var mouseEvent = function(){
$(document).on('mouseenter','.wrap',function(){
clearInterval(timer);
});
$(document).on('mouseleave','.wrap',function(){
clearInterval(timer);
timer = setInterval(moveRight,2000);
});
}
var init = function(){
_getWidth();
loop();
creatLi();
ClickEvent();
mouseEvent();
}
return {
init:init
}
}();
myApp.init();
}())
</script>
</body>
</html>