我建议您使用插件,因为这比您可能意识到的要多。有很多插件可以解决这个问题,这里有一个让你开始的列表:http ://www.tripwiremagazine.com/2012/12/jquery-carousel.html
我修改了你的 Javascript、HTML 和 CSS,让你指向正确的方向:http:
//jsfiddle.net/nf5Dh/2/
您需要一个contContent
绝对定位的容器,并且该容器在容器 div 内移动。您只需将元素浮动contContent
以使它们彼此相邻。
HTML:
<div id='cont'>
<div id="contContent">
<div id='i1'></div>
<div id='i2'></div>
<div id='i3'></div>
</div>
</div>
CSS:
#cont {
width: 50px;
padding-top: 10px;
background: blue;
height: 50px;
overflow: hidden;
position: relative;
}
#contContent {
height: 50px;
width: 150px;
position: absolute;
top: 0;
left: 0;
}
#contContent > div {
float: left;
display: inline-block;
height: 50px;
width: 50px;
}
#i1 { background: red; }
#i2 { background: green; }
#i3 { background: yellow; }
和 JS:
$("#contContent > div").click(function(){
$("#contContent").animate({left: "-=50px"},1000);
});
最好使用 anul
而不是所有 div,这至少在语义上更正确,尽管在技术上不是必需的。
<div id="carousel">
<ul id="carouselContent">
<li id="slide1"></li>
<li id="slide2"></li>
<li id="slide3"></li>
</ul>
</div>