gpt4 book ai didi

javascript - 随机化和排序 Div - Slick.JS

转载 作者:行者123 更新时间:2023-11-28 04:05:54 25 4
gpt4 key购买 nike

我正在使用 slick.js库并在我的网页上包含以下代码行,这将允许我随机设置轮播中幻灯片的顺序。

JavaScript/jQuery:

$('.qa').on('init', function(event, slick, currentSlide, nextSlide) {
// Randomize the slides and then run slick slider
$.fn.randomize = function(selector) {
var $elems = selector ? $(this).find(selector) : $(this).children(),
$parents = $elems.parent();

$parents.each(function() {
$(this).children(selector).sort(function(){
return Math.round(Math.random()) - 0.5;
}).detach().appendTo(this);
});

return this;
};

$('.qa').find('.slick-track').randomize('.slick-slide');
});

由于我对 JavaScript/jQuery 不是很熟悉,我如何能够随机化我的幻灯片的顺序(目前它是这样做的)除了最后一个(按顺序排列)?

最佳答案

slick.js 添加了一些幻灯片的克隆,因此我建议您在调用 slick() 之前随机化幻灯片。您还可以保持您的代码几乎与您编写的代码完全相同,但添加一个检查以防止最后一张幻灯片被重新排序*。查看包含的示例。

$.fn.randomize = function (selector) {
var $elems = selector ? $(this).find(selector) : $(this).children(),
$parents = $elems.parent();

$parents.each(function () {
$(this).children(selector).sort(function (childA, childB) {
// * Prevent last slide from being reordered
if($(childB).index() !== $(this).children(selector).length - 1) {
return Math.round(Math.random()) - 0.5;
}
}.bind(this)).detach().appendTo(this);
});

return this;
};

$(".qa").randomize().slick();
<link href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.6/slick.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.6/slick.min.js"></script>
<div class="qa">
<div>your content 1</div>
<div>your content 2</div>
<div>your content 3</div>
<div>your content 4</div>
<div>your content 5</div>
<div>your content 6</div>
<div>your content 7</div>
<div>your content 8</div>
<div>I am always last</div>
</div>

如果您检查一下,您会发现最后一张幻灯片总是最后一张。

关于javascript - 随机化和排序 Div - Slick.JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31459832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com