2012-10-03 119 views
0

我想ot得到背景顏色改變部分透明.png div後面。修改div的類是「.alert」。我可以手動編輯.alert類的背景顏色,並且它可以很好地工作。現在我只是試圖做一個1秒的週期。簡單的背景顏色

我有這樣的:

var bgstate = 0; 
var states = []; 
states[0] = '#F00'; 
states[1] = '#CCC'; 
states[2] = '#F00'; 

function flash() { 
bgstate++; 
if(bgstate > 2) bgstate = 0; 

$('.alert').ready(function() { 
     $('.alert').css({ 'background-color' : " + states[bgstate] + " 
    }); 

}); 


$(document).ready(function() { 
setTimeout(flash, 1000); 
}); 

我似乎無法獲得 「國[X]」 爲alert類的工作。我對此很不好,而且我不知道正確的語法。

感謝您的任何幫助。

回答

0

我給你演示:

var bg = ["#000","#f00","#ff0"]; 
var i = 0; 

setInterval(function() { 
    if (i < bg.length) { 
    $("body").css({'background-color' : bg[i] }); 
    i++; 
    } 
    else { 
    $("body").css({'background-color' : bg[0] }); 
    i = 1; 
    } 
},1000); 

http://jsfiddle.net/Q9jhX/

+1

這是一個非常簡單的完成版本,我正在尋找。謝謝。 –

0

未經測試的代碼的其餘部分,它看起來像你可能有一個簡單的語法錯誤:

$('.alert').css({ 'background-color' : " + states[bgstate] + " }); 

您正在試圖通過一個HEX顏色值,這是一個字符串類型,但是上面插入的值是字面值。

試試這個(注意周圍各州的額外的單引號[X]變量):

$('.alert').css({ 'background-color' : '" + states[bgstate] + "' }); 
+0

不可否認,他的粘貼示例包含語法錯誤,但他的問題是真正的「因爲它的作品,我怎麼弄它不止一次地射擊?「不是「爲什麼不這樣做?」 – saml

0

不關閉您的行情正常..試試這個

$('.alert').css({ 'background-color' : '"' + states[bgstate] + '"' }); 
0

這可能是一個稍微可重複使用的版本:

var Flasher = function (elem, pattern) { 
    this.bg = pattern; 
    this.i = 0; 
    this.$el = elem; 
} 

Flasher.prototype.flash = function (interval) { 
    var self = this; 
    this.loop = setInterval(function() { 
     if (self.i < self.bg.length) { 
      self.$el.css({'background-color' : self.bg[self.i] }); 
     } 
     else { 
     self.i = 0; 
     self.$el.css({'background-color' : self.bg[self.i] }); 
     } 
     self.i++; 
    },interval); 
}; 

Flasher.prototype.stop = function() { 
    clearInterval(this.loop); 
}; 
var flasher = new Flasher($('body'), ["#000","#f00","#ccc"]); 
flasher.flash(1000); 
flasher.stop(); 

0
var bgstate = 0; 
var states = ['#F00','#CCC','#F00']; 

function flash() { 
$('.alert').css('background-color', states[bgstate]); 
bgstate = (bgstate+1) % states.length; 
}); 


$(document).ready(function() { 
setInterval(flash, 1000); 
});