gpt4 book ai didi

javascript - 随机插入但绝不会彼此相邻

转载 作者:太空宇宙 更新时间:2023-11-04 16:28:01 26 4
gpt4 key购买 nike

基于 Insert a div in a random location in a list of divs -- 我正在尝试将一些猫照片随机插入非猫照片的 div 中:

http://jsfiddle.net/frank_o/QXdL3/21/

但有没有办法防止猫依次出现在彼此旁边?它们应该分散开来。

JS:

var insertionTemplate = $('.template').find('.image').html(),
insertionTargetChildren = $('.main').find('.image'),
insertionFrequency = 3;

var random;
for (var i = 0; i < insertionFrequency; i++) {
random = Math.floor(Math.random() * insertionTargetChildren.length) + 0;
insertionTargetChildren.eq(random).append(insertionTemplate);
}

HTML:

<div class="template" style="display: none;">
<div class="image">
<img src="http://placekitten.com/75/150" />
</div>
</div>
<div class="main">
<div class="image">
<img src="http://lorempixel.com/75/150" />
</div>

<!-- ... -->

</div>

最佳答案

我已解决问题并检查下一个或上一个元素是否为猫。

var target    = $('.main').find('.image'),
frequency = 3,
element = $();

for (var i = 0; i < frequency; i++) {
(function getElems() {
element = target.eq( Math.floor(Math.random() * target.length) );
var next = element.next(),
prev = element.prev(),
all = element.add(next, prev);

if (element.hasClass('cat') || next.hasClass('cat') || prev.hasClass('cat')) getElems();
}());

var template = $('.template div').clone(true);
element.before(template);
}

FIDDLE

关于javascript - 随机插入但绝不会彼此相邻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23983903/

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