我爲網格庫製作了這個腳本,它每3秒鐘隨機更改一次圖像,通過更改其srcset屬性,總是有15個可見圖像,但數組已製作出來28,而且因爲它的隨機發生有時會發生3個或更多的相同的圖像,所以有15個機會是相同的(瘋狂的小機會,但你明白我的觀點),我想以某種方式阻止它。在圖庫網格中隨機給出像img,srcs這樣的屬性
我在考慮以某種方式定義最多可能有2個相同的屬性,所以如果其中有2個屬性,它不會將其他img更改爲該屬性。或者,如果可能的話,這將是完美的,只有一個屬性可見,它不會將其添加到其他img,如果有確切的屬性。
即使擁有最多2個相同的屬性,我仍然可以確定,因爲它可以最大限度地減少同時看到它們的機會,因爲一半是隱藏的,它可以防止3個或更多。
繼承人的jQuery的:
$(function() {
//array
var dice = $('.attachment-lenslight_squares').map(function() {
return $(this).attr('srcset')
}).get();
$('.attachment-lenslight_squares')
.click(function() {
var num = Math.floor(Math.random() * dice.length);
$(this).fadeOut(200, function() {
$(this).attr('srcset', dice[num]);
}).fadeIn(200);
});
setInterval(function() {
var rand = Math.floor(Math.random() * 15);
$('.attachment-lenslight_squares').eq(rand).click();
}, 3000);
});
感謝想法
將28個可能的值放入數組中,按隨機順序排序,取前15個項目。 – pawel
@pawel這不會工作,因爲所有28都是uniqe,我需要的是添加的屬性不重複(或至多2存在),因爲有一個從陣列每3秒添加一個,啊我不好解釋它 –
但是你已經把它們放在'dice'數組中。只是隨機化數組,然後使用遞增索引而不是隨機*長度來表示'num'。一旦你達到從0開始的結尾 – pawel