jCarousel - 实现活动状态和换行:循环

时间:2011-02-07 23:21:56

标签: jquery jquery-plugins jcarousel

前段时间我为需要编号活动状态的客户端实现了jCarousel映像解决方案。经过一段谷歌搜索后找到了答案,但注意到首选的循环选项不起作用。

一旦旋转木马循环通过其所有(5)个图像,一旦返回到第一个图像,活动状态将会丢失,因为根据jcarousel它实际上是第6个(指数保持不变)在递增)。

我只是继续使用wrap:'both',它至少具有正常运行的活动状态。然而,现在客户说他们不喜欢这种效果,只是希望动画在最终图像之后返回到位置1。这意味着我需要'打包':'两者'以某种方式工作。

以下是我目前的代码。有人可以解决这个,因为它有点高于我的头!

function highlight(carousel, obejctli,liindex,listate){
     jQuery('.jcarousel-control a:nth-child('+ liindex +')').attr("class","active");
};

function removehighlight(carousel, obejctli,liindex,listate){
     jQuery('.jcarousel-control a:nth-child('+ liindex +')').removeAttr("class","active");
};



    jQuery('#mycarousel').jcarousel({
        initCallback: mycarousel_initCallback,
        auto: 5,
        wrap: 'both',
        vertical: true,
        scroll: 1,
        buttonNextHTML: null,
        buttonPrevHTML: null,
        animation: 1000,
        itemVisibleInCallback:  highlight,
        itemVisibleOutCallback: removehighlight

    });
});

提前致谢

1 个答案:

答案 0 :(得分:0)

我会将一些元数据放入li中元素的属性中,例如:

<ul class="carousel">
  <li><img src="whatever.png" rel="1" /></li>
  <li><img src="whatever.png" rel="2" /></li>
  <li><img src="whatever.png" rel="3" /></li>
</ul>

然后再做

function highlight(carousel, obejctli,liindex,listate){
    var nthchild = $("img", obejctli).attr('rel'); //not sure if this is the syntax
    jQuery('.jcarousel-control a:nth-child('+ nthchild +')').attr("class","active");
};

如果我没记错,objectli不是一个jquery对象,它是一个dom元素。你可能不得不调整代码,因为我不记得如何在非jquery objets中使用选择器。