<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>轮播左右</title>
<script src="js/jquery-1.7.1.js"></script>
<style>
.list{
width: 250px;
height: 47px;
overflow: hidden;
border: 1px solid #d74147;
position: relative;
}
.list ul{
padding-top: 0 !important;
padding-left: 0 !important;
margin-top: 0 !important;
position: absolute;
top: 0;
width: 500px;
}
.list ul li{
width: 50px;
line-height: 30px;
list-style: none;
text-align: center;
float: left;
}
</style>
<script type="text/javascript">
$(function(){
//class为lis给一个变量名叫$ul
var $ul = $('.lis');
//在ul下查找所有的li,获取li的宽度
var $liWidth = $ul.find('li').css('width');
//
var direction = 'left';
//按钮class为left的点击事件,并且direction=left,下面反之
$('.left').on('click',function(){
direction = 'left';
});
$('.right').on('click',function(){
direction = 'right';
});
//给定时器setInterval函数申明一个变量为leftInterval
var leftInterval = setInterval(function(){
//为什么放这边(如果放在定时器外面,只能往一个方向【left】动,因为定时器在IF里面)
//如果direction=left
if(direction == 'left'){
//查找ul下得li的第一个li,并且声明变量为$liFirst
var $liFirst = $('.lis').find('li').first();
//ul向左运动的长度为li的宽度,速度是slow
$ul.animate({left: '-' + $liWidth}, 'slow', function(){
//移动好后,每次都把第一个的插入到ul得最后
$liFirst.appendTo($ul);
//因为每次第一个往左移动,后面的第一个再往左移动,如果不把他
$ul.css('left', 0);
});
}
else{
var $liLast = $('.lis').find('li').last();
$liLast.prependTo($ul);
$ul.css('left', '-' + $liWidth);
$ul.animate({left: 0}, 'slow');
}
}, 1000);
// clearInterval(leftInterval());
//1. 动画 left 负值
//2. 头移到尾
//3. left 从负值设为0
//1. left 从0设为负值
//2. 尾移到投
//3. 动画 left 0
});
</script>
</head>
<body>
<div class="list">
<ul class="lis">
<li>11111</li>
<li>22222</li>
<li>33333</li>
<li>44444</li>
<li>55555</li>
<li>11111</li>
<li>22222</li>
<li>33333</li>
<li>44444</li>
<li>55555</li>
</ul>
</div>
<input type="button" value="left" class="left" />
<input type="button" value="right" class="right" />
</body>
</html>