[英]Hide Twitter Bootstrap left and right arrows if only one slider is present
我一直试图隐藏Bootstrap Carousel左右按钮,如果只有一个滑块,但似乎无法让它正常工作。
我试过了
if ($('.carousel-inner div').length === 1 ) {
$(this).find('.controls .carousel-control').hide();
}
和
if($('.carousel-inner .item').is(':only-child')) {
$(this).find('.controls .carousel-control').hide();
没有运气。
有没有特别的理由为什么这些都不会起作用? 控制台为.length
返回正确数量的滑块,我在处理.hide
播的不同函数上使用完全相同的.hide
方法。
只要您每页有1个轮播,接受的答案就可以正常工作。 我有一对,所以我想加入解决方案:
基于使用标准Bootstrap Carousel Mark up:
<div id="myCarousel" class="carousel slide">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<!-- Carousel items -->
<div class="carousel-inner">
<div class="active item">…</div>
<div class="item">…</div>
<div class="item">…</div>
</div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>
</div>
你想要遍历旋转木马的每次出现,使用$(this)并抓住它的兄弟姐妹:
$('.carousel-inner').each(function() {
if ($(this).children('div').length === 1) $(this).siblings('.carousel-control, .carousel-indicators').hide();
});
而不是$(this).find(...).hide();
尝试$('.controls .carousel-control').hide();
试试这个Bootstrap 4+
$('.carousel-inner').each(function() {
if ($(this).children('div').length === 1) $(this).siblings('.carousel-indicators, .carousel-control-prev, .carousel-control-next').hide();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.