【发布时间】:2016-02-16 15:20:38
【问题描述】:
我有一个带有 5 张幻灯片的引导轮播,我希望将它们随机化,但始终将同一张幻灯片放在前面。
因此它可以加载并成为这些订单中的任何一个。
1 3 2 5 4 // 1 2 5 4 3 // 1 5 2 4 3
我可以在数学地板上使用 javascript,但这将适用于所有人,而不仅仅是幻灯片 2、3、4、5
有没有办法做到这一点?它显然不需要是原生的引导程序。每张幻灯片都是一个<div> 元素而不是<li>,我使用数据属性而不是javascript 来初始化滑块,如果需要我可以更改它。
轮播:
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel" data-interval="5000" data-pause="hover">
<!-- Indicators -->
<ol class="carousel-indicators hidden-xs hidden-sm">
<li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
<li data-target="#carousel-example-generic" data-slide-to="3"></li>
<li data-target="#carousel-example-generic" data-slide-to="4"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner left-bottom-corner right-bottom-corner" role="listbox">
<div class="item active">
<img class="hidden-xs" src="<?php the_field('home_slide_home'); ?>" alt="...">
<img class="visible-xs" src="<?php the_field('home_slide_home_mobile'); ?>" alt="...">
<div class="carousel-caption">
<img style="margin-left:auto;margin-right:auto;" src="<?php the_field('home_slide_icon'); ?>" alt="...">
<?php the_field('slide_home_text'); ?>
</div>
</div>
<div class="item randomslide">
<img class="hidden-xs" src="<?php the_field('home_slide_1'); ?>" alt="...">
<img class="visible-xs" src="<?php the_field('home_slide_1_mobile'); ?>" alt="...">
<div class="carousel-caption">
<img style="margin-left:auto;margin-right:auto;" src="<?php the_field('home_slide_icon'); ?>" alt="...">
<?php the_field('slide_1_text'); ?>
</div></div>
<div class="item randomslide">
<img class="hidden-xs" src="<?php the_field('home_slide_2'); ?>" alt="...">
<img class="visible-xs" src="<?php the_field('home_slide_2_mobile'); ?>" alt="...">
<div class="carousel-caption">
<img style="margin-left:auto;margin-right:auto;" src="<?php the_field('home_slide_icon'); ?>" alt="...">
<?php the_field('slide_2_text'); ?>
</div>
</div>
<div class="item randomslide">
<img class="hidden-xs" src="<?php the_field('home_slide_3'); ?>" alt="...">
<img class="visible-xs" src="<?php the_field('home_slide_3_mobile'); ?>" alt="...">
<div class="carousel-caption">
<img style="margin-left:auto;margin-right:auto;" src="<?php the_field('home_slide_icon'); ?>" alt="...">
<?php the_field('slide_3_text'); ?>
</div>
</div>
<div class="item randomslide">
<img class="hidden-xs" src="<?php the_field('home_slide_4'); ?>" alt="...">
<img class="visible-xs" src="<?php the_field('home_slide_4_mobile'); ?>" alt="...">
<div class="carousel-caption">
<img style="margin-left:auto;margin-right:auto;" src="<?php the_field('home_slide_icon'); ?>" alt="...">
<?php the_field('slide_4_text'); ?>
</div>
</div>
</div>
</div>
解决方案
我在@CBroe 的提示下完成了这项工作
Below 选择除第一个滑块外的所有滑块,该滑块具有预定义的活动类,然后将它们打乱。
jQuery(function ($) {
var parent = $(".carousel-inner");
var divs = $(".item").not(".item.active");
while (divs.length) {
parent.append(divs.splice(Math.floor(Math.random() * divs.length), 1)[0]);
}
});
【问题讨论】:
-
“我可以将 javascript 与数学地板一起使用,但这将适用于所有人” - 只有当您 将其应用于“所有人”。
-
要将问题标记为已解决,请接受下面的答案,即使这是您自己的答案
-
@ChrisBier 我必须等到明天才能做到这一点。当我有能力的时候,我会这样做。不过谢谢。
标签: javascript jquery html css twitter-bootstrap