2011-07-26 51 views
3

enter image description here我是javascript新手,想知道如何更改DIV的背景圖像(只有2個圖像),每隔10秒鐘說一次最好的方法。謝謝:)在使用jQuery的計時器上更改DIV CSS

+2

看看功能setTimeout()在JavaScript(http://www.w3schools.com/jsref/met_win_settimeout.asp) –

+0

更好:嘗試'setInterval()' – theazureshadow

+0

是綠色和紅色圖像一樣通過或特定於每個div ? – Sparkup

回答

2

這應該爲你做它:http://jsfiddle.net/U9GCM/

$(document).ready(function(){ 
var setFirst = $('.set').first();  
setFirst.addClass('active'); 
setTimeout(function(){change_background();},1000); 
}); 

function change_background(){ 
    var setFirst = $('.set').first(), 
     setActive = $('.active'), 
     setNext = setActive.next(), 
     setCheckActive = setActive.attr('id'), 
     setCheckLast = $('.set').last().attr('id'); 

    if(setCheckActive == setCheckLast){ 
     setNext = setFirst; 
     } 

    $('.active').removeClass('active'); 
    setNext.addClass('active'); 
    setTimeout(function(){change_background()},1000); 
    } 

,只要你想你可以添加儘可能多的div,只是改變1000至10000十秒鐘。

希望它有幫助。

+0

謝謝。我怎麼會在同一時間更改div背景圖片中的div? – HAWKES08

+0

是這樣的:http://jsfiddle.net/U9GCM/1/ – Sparkup

+0

謝謝,這正是我需要:)非常高興再次感謝 – HAWKES08

0
var time = 10000; // Ten seconds 
var timer = setInterval(function() { 

    $('#myDiv, #myOtherDiv').css('background-image', '/new/img/path.jpg'); 

}, time); 

未測試,但應該工作。我將以一個例子爲例。

+0

基本上我有3個連續的div。我需要在循環中每隔10秒改變每個div的背景。 – HAWKES08

1

嘗試這樣:

$(document).ready(function(){ 
    setTimeout('setbackground()',10000); 
}); 

function setbackground(){ 
    // change you image here 
    setTimeout('setbackground()',10000); // to change the image in 10 seconds 
} 
+0

我也需要圖片換回 – HAWKES08

+0

該函數稱它爲自回。您需要測試當前顯示,然後更改爲下一個顯示。 –

0
$(document).ready(function(){ 
    var i = 0; 
    var images = newArray("image1.jpg","image2.png","image3.jpg"); 
    setTimeout('changeBack(i, images)',10000); 
}); 

function changeBack(i, images) { 
i++; 
if(i > images.length) { 
    i = 0; 
} 
$('#changeBackInThisId').css('background-image', images[i]); 
setTimeout(changeBack(i, images), 10000); 
} 

我希望它工作:-)

或者你可以在風格=你的代碼的任何數量的div「顯示:無」(除了第一個)和每10秒設置顯示:塊;到其中之一。

0

jsfiddle demo

備用CSS類(即bg1 < - >bg2)與setInterval功能

var body = document.getElementsByTagName('body')[0], 
    switchBG = function() { 
     var bgTimer = setInterval(function() { 
      body.className = (body.className === "bg2" ? "bg1" : "bg2"); 
     }, 10000 /* 10000 ms = 10 sec */); 
    }; 
switchBG(); 

這是直的js