2015-05-12 54 views
0

我有4 div我的網頁上的項目,我試圖讓這些項目的內部html隨機淡出,從數組中取一行並淡入,在 - 取而代之,這是否有意義?淡入淡出元素從數組中褪色 - jQuery

// My items that I would like to repopulate the faded out info 

var testimonialsArray = [ 
    "<div class='change'><h1>Box 5</h1><p>Lorem ipsum</p></div>", 
    "<div class='change'><h1>Box 6</h1><p>Lorem ipsum</p></div>", 
    "<div class='change'><h1>Box 7</h1><p>Lorem ipsum</p></div>", 
    "<div class='change'><h1>Box 8</h1><p>Lorem ipsum</p></div>", 
    "<div class='change'><h1>Box 9</h1><p>Lorem ipsum</p></div>" 
]; 

// Find a random div and fade it out 

var order = Math.floor((Math.random()* $('.change').length)+1); 

$('.box').eq(order).find('.change').fadeOut(); 

.......Fade in new data from an array row 

http://jsfiddle.net/crn7dysu/1/

+1

此代碼永遠不會生成0作爲指數 – SharpEdge

+0

所以,除了從0指數問題,* *什麼是您的實際問題?你實際上並沒有說出你想要的方式。 –

+0

你的意思是:$('。box')。fadeOut(500).html(getRandomDiv()).fadeIn(500); ? – Roberto

回答

2

基於我認爲你想做的事:

var order = Math.floor((Math.random()* $('.change').length)); 

$('.box').eq(order).find('.change').fadeOut(function(){ 
    $(this).html(testimonialsArray[Math.floor((Math.random()* testimonialsArray.length))]).fadeIn(); 
}); 

的jsfiddle:http://jsfiddle.net/crn7dysu/4/

+0

太棒了,謝謝@TrueBlueAussie! – Liam

0

假設你從Math.random()得到0和$('.change').length是10

Math.floor((0 * 10) + 1); 

你可以看到,這個代碼永遠不會生成0作爲輸出。

這一個,而不是將生成所有可能的組合:

Math.floor(Math.random()* $('.change').length); 
+1

'+ 1'當然是錯誤的,但'length-1'也是不正確的,因爲'Math.random'返回'「直到但不包括1(獨佔)」'所以從不碰到'length'值。 –

+0

你是對的我的錯! – SharpEdge

0

你可以使用此腳本:

var testimonialsArray = [ 
    "<div class='change'><h1>Box 5</h1><p>Lorem ipsum</p></div>", 
    "<div class='change'><h1>Box 6</h1><p>Lorem ipsum</p></div>", 
    "<div class='change'><h1>Box 7</h1><p>Lorem ipsum</p></div>", 
    "<div class='change'><h1>Box 8</h1><p>Lorem ipsum</p></div>", 
    "<div class='change'><h1>Box 9</h1><p>Lorem ipsum</p></div>" 
]; 

var order = Math.floor((Math.random()* $('.box').length)+1); 
var newOrder = Math.floor((Math.random()* testimonialsArray.length)); 

$('.box:nth-child('+order+')').find(".change").fadeOut(function() { 
    $(testimonialsArray[newOrder]).appendTo('.box:nth-child('+order+')').hide().fadeIn('slow'); 
}); 

Updated Fiddle

+0

構建一個字符串選擇器,只是使用':nth-​​child',似乎有點浪費,你不覺得嗎?原始代碼更短/更快(但只是有一個不正確的「+1」索引)。 –