我想要一個腳本使用jQuery在一個div內淡入和淡出圖像。jQuery隨機衰落圖像(從兄弟姐妹)在隨機div(具體類)
我用下面的代碼(從http://jonraasch.com/blog/a-simple-jquery-slideshow):
function slideSwitch() {
var $active = $('div.box1 img.active');
if ($active.length == 0) $active = $('div.box1 img:last');
var $sibs = $active.siblings('img');
var rndNum = Math.floor(Math.random() * $sibs.length);
var $next = $($sibs[ rndNum ]);
$active.addClass('last-active');
$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active last-active');
});
}
$(function() {
setInterval("slideSwitch()", 5000);
});
這個腳本目前運作良好,並從來自div.box1內的兄弟姐妹圖像隨機選擇。
除此之外,我決定我也希望它首先從頁面中選擇一個具有類「boxgrid」(而不是像.box1這樣的特定類)的隨機div(有6個容器div。 boxgrid類應用),它們是圖像的容器。
即我首先要隨機選擇一個.boxgrid div,然後在該選定div內繼續,並根據上述腳本選擇一個隨機圖像並淡入到下一個。下面是我使用的XHTML:
<div class="boxgrid box1">
<img src="img/homepage/box1-1.png" class="active"/>
<img src="img/homepage/box1-2.png"/>
<div class="boxcaption">
<h3>Header</h3>
<p>Text goes here...</p>
</div>
</div>
嘗試此我自己(我不是很明顯程序員 - 但我想)我已經拿出了以下內容:
function slideSwitch() {
var $randbox = $('div.boxgrid').siblings();
var rndBox = Math.floor(Math.random() * $randbox.length);
var $active = $($randbox[ rndBox ]);
if ($active.length == 0) $active = $('img:last');
var $sibs = $active.siblings('img');
var rndNum = Math.floor(Math.random() * $sibs.length);
var $next = $($sibs[ rndNum ]);
$active.addClass('last-active');
$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active last-active');
});
}
$(function() {
setInterval("slideSwitch()", 5000);
});
我我在尋找一些幫助,因爲我努力讓它選擇一個隨機的div.boxgrid,然後隨着它在原始腳本中隨機淡入圖像。我關門了嗎?
任何幫助將不勝感激。
謝謝。
感謝您的回覆。我查了一下上下滑動的方法,他們沒有做我所需要的 - 淡入淡出。 eq方法看起來很有趣,但我真的不知道如何使用它來從頁面上的「.boxgrid」類中選擇一個隨機的div。 – 2010-10-22 11:15:20
那麼你知道如何生成一個隨機數:)所以使用它,然後在jq中使用.length來查找選擇了多少。也在jquery中有一個fadeIn fadeOut選項:) – Val 2010-10-23 02:53:12
好的...感謝您的輸入 - 不知何故,我想出了它 - 也許我沒有我想象的那麼糟糕 - 所以對於任何需要幫助的人: – 2010-10-23 12:10:32