使用jQuery淡入新图像

时间:2012-11-09 17:08:00

标签: javascript jquery

以下是充当背景的图像元素。该位置是绝对的,它还具有较低的z-index,因此它可以留在其余内容之后。

<img src="day-sky.jpg" id="background" />

以下秒仅指一分钟内的秒数。这仅用于测试目的,但如果秒数为&lt;我想要一个背景图像。 30如果它大于30,则为另一个。如果可能的话,转换对于下一个图像将是一个很好的淡入淡出。

我一直在寻找方法来做到这一点,但还没有找到一个好办法。有什么想法吗?

function changeBackground() {

if (secs > 30) {
    //have one background
}
else {
    //have a different background
  }
}

2 个答案:

答案 0 :(得分:1)

您可能希望使用setInterval()功能在根据您的要求定义的每个时间戳之后更改背景。

setInterval(changebackground, timeout); runs the code/function once after the timeout.

 $(function() {
    setInterval(function() {
        var bg = ["#000","#FF0", "#909"]
        var rep= Math.floor(Math.random() *3);
                $("body").css("background",bg[rep])
    }, 3000)
  })

答案 1 :(得分:0)

以下是一个有效的例子:http://jsfiddle.net/PKqGk/

var imgs = [
        "http://placehold.it/1920x1080/&text=1",
        "http://placehold.it/1920x1080/&text=2",
        "http://placehold.it/1920x1080/&text=3",
        "http://placehold.it/1920x1080/&text=4",
        "http://placehold.it/1920x1080/&text=5",    
        "http://placehold.it/1920x1080/&text=6"   
    ],
    ind = 0,
    dur = 10 * 1000; // ten seconds
(function imgSlide(){

    var img = ind % 2 ? $('#imageOne') : $('#imageTwo'),
        hid = ind % 2 ? $('#imageTwo') : $('#imageOne');

    console.log(img, hid);

    img.fadeOut("slow", function(){
        hid.fadeIn("slow").css('margin-left', -hid.width()/2);
        if (++ind == imgs.length) ind = 0;
        img.attr('src', imgs[ind]);
        setTimeout(imgSlide, dur);
    });
})();​