在幻灯片中只有一张幻灯片的情况下,我想隐藏由data-cycle-next
属性生成的"Next"控制按钮(.cycle-next
)。我现在好像不能用了。
我有以下HTML(只需取消注释img
标签以测试不同的幻灯片计数):
<div class="cycle-slideshow"
data-cycle-timeout="0"
data-cycle-next=".cycle-next"
>
<img src="http://placehold.it/250x250" />
<!--<img src="http://placehold.it/350x250" />-->
<!--<img src="http://placehold.it/450x250" />-->
</div>
<div class="cycle-next">Next</div>
和基于Cycle2 API的jQuery:
$('.cycle-slideshow').on('cycle-initialized', function (e, opts, API) {
if (opts.slideCount == 1) {
$(".cycle-next").css("display", "none");
}
});
这里也有一把小提琴
谁能找出问题是什么,或者建议另一种解决方案?谢谢。
你在寻找这样的东西吗?您可以像这样使用div
元素的children
的length
属性:
var slides = $('.cycle-slideshow').children().length;
if(slides <= 1) {
$('.cycle-next').css("display", "none");
} else {
$('.cycle-next').css("display", "visible");
}
$('.cycle-slideshow').on('cycle-initialized', function (e, opts, API) {});
示例:http://jsfiddle.net/MCWvA/4/
您可以使用.length
找到img的数量,然后可以隐藏下一个按钮。
check this fiddle
这是我用divs:
代替的Cycle2幻灯片// flag slideshows with only a single slide by adding a "cycle-single" class
$('.cycle-slideshow').each(function( i ) { if( $(this).children('.cycle-slide').not('.cycle-sentinel').length <= 1 ) $(this).addClass('cycle-single'); });
这将cycle-single
类添加到只有一张幻灯片(或没有)的.cycle-slideshow
中。然后,您可以根据.cycle-slideshow.cycle-single
编写css规则,例如
.cycle-slideshow.cycle-single + .cycle-next {
display: none;
}
在OP的情况下。只要语法一致,这对于每个页面的多个滑块应该工作得很好。
这里你需要添加ID = slideshow到你的代码:
<div id="slideshow" class="cycle-slideshow"
data-cycle-timeout="0"
data-cycle-next=".cycle-next"
>
<img src="http://placehold.it/250x250" />
<!--<img src="http://placehold.it/350x250" />-->
<!--<img src="http://placehold.it/450x250" />-->
</div>
<div class="cycle-next">Next</div>
然后使用:
$('#slideshow').on('cycle-initialized', function (e, opts) {
if (opts.slideCount <= 1) {
$(".cycle-next").css("opacity", 0);
}
});