动画列表项左右

时间:2013-07-16 16:17:31

标签: jquery html css jquery-animate styling

我有一张带有8张图片的小图片幻灯片,但只显示5张图片,其他图片则隐藏。

这是html

<div id="itemsListBox">
    <ul>
        <li><img src="images/home-items/washing_machine.png" alt="" /></li>
        <li><img src="images/home-items/refrigerator.png" alt="" /></li>
        <li><img src="images/home-items/dishwasher.png" alt="" /></li>
        <li><img src="images/home-items/ovens_stoves_hobs.png" alt="" /></li>
        <li><img src="images/home-items/extractors.png" alt="" /></li>
        <li><img src="images/home-items/microwave_oven.png" alt="" /></li>
        <li><img src="images/home-items/coffee_makers.png" alt="" /></li>
        <li><img src="images/home-items/washer_dryer.png" alt="" /></li>
        <li><img src="images/home-items/tumble_dryer.png" alt="" /></li>
    </ul>
</div>

和css:

#itemsListBox {
    position: absolute;
    top: 90px;
    width: 100%;
    padding: 0 10%;
    overflow: hidden;
}
#itemsListBox ul {
    white-space: nowrap;
    overflow: hidden;
}
#itemsListBox ul li{
    list-style-type: none;
    display: inline-block;
    width: 18%;
    margin: 1%;
}
#itemsListBox ul li img {
    width: 100%;    
}

我可以使用以下代码移动图像:

$("#rightArrow").click(function(e) {
        var curr =  $("#itemsListBox ul li:last");
        curr.parent().prepend(curr);
    });
$("#leftArrow").click(function(e) {
        var curr =  $("#itemsListBox ul li:first");
        curr.parent().append(curr);
    });

但我想用动画做一些事情。有什么想法吗?

这是一个现场演示: http://jsfiddle.net/Bergkamp/shnyH/

2 个答案:

答案 0 :(得分:0)

您可以尝试类似:

在css中将您的图像位置设置为相对位置:

 img {position:relative;}

而不是追加和前置使用Jquery的动画功能来改变左侧位置。

   $("img").animate({ 
    left: "-=150px",
  }, "slow" );

参见编辑示例:

http://jsfiddle.net/z3PzC/

答案 1 :(得分:0)

以下是使用您的图片向下滑动/向上滑动动画的示例:http://jsfiddle.net/Jag96/5VDTL/

这里的主要障碍是你隐藏了一些图像,一次只显示5个图像,所以你需要在第一个和第五个li元素上设置动画:

$("#itemsListBox ul li:nth-child(5)").slideUp("slow", function () {
    curr.hide().prependTo(curr.parent()).slideDown();
});

如果您想要更多自定义动画,也可以使用jQuery .animate()方法。