前段时间我为需要编号活动状态的客户端实现了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
});
});
提前致谢
答案 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中使用选择器。