1

我有一个带有 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/

4

2 回答 2

0

你可以尝试类似的东西:

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

 img {position:relative;}

而不是 append 和 prepend 使用 Jquery 的 animate 函数来更改左侧位置。

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

请参阅编辑示例:

http://jsfiddle.net/z3PzC/

于 2013-07-16T16:42:04.067 回答
0

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

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

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

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

于 2013-07-16T18:35:46.287 回答