Javascript 如何使用jQuery和图像数组更改#header的css属性?

Javascript 如何使用jQuery和图像数组更改#header的css属性?,javascript,jquery,Javascript,Jquery,我正试图编辑一个脚本来更改div的图像,如下所示,以更改#header的background image属性 正如您在我的小提琴中所看到的,我试图将图像显示到$('#header').css('background-image',…..).fadeTo('slow',1) 我该怎么做?我想我还得换一些其他的部分 var img = 0; var imgs = [ 'http://www.istockphoto.com/file_thumbview_approve/9958532/2/is

我正试图编辑一个脚本来更改div的图像,如下所示,以更改#header的background image属性

正如您在我的小提琴中所看到的,我试图将
图像显示到$('#header').css('background-image',…..).fadeTo('slow',1)

我该怎么做?我想我还得换一些其他的部分

var img = 0;
var imgs = [
    'http://www.istockphoto.com/file_thumbview_approve/9958532/2/istockphoto_9958532-sun-and-clouds.jpg',
    'http://www.istockphoto.com/file_thumbview_approve/4629609/2/istockphoto_4629609-green-field.jpg',
    'http://www.istockphoto.com/file_thumbview_approve/9712604/2/istockphoto_9712604-spring-sunset.jpg'
];
// preload images
$.each(imgs,function(i,e){var i=new Image();i.src=e;});

// populate the image with first entry
$('img').attr('src',imgs[0]);


var opacity = 0.1; // change this for minimum opacity
function changeBg() {
    $('img').fadeTo('slow',opacity,function(){
        $('#header').css('background-image',..................).fadeTo('slow',1);
    });
}



setInterval(changeBg,5000);

您需要一些修复:

  • 使用简单的增量跟踪当前图像
  • 打字错误:“图像”->“imgs”
  • $(“img”)没有选择任何内容,因此JQuery fadeto“complete”回调永远不会被触发(我假设您的意思是淡入div本身)
  • 你需要“url('http://...")"为


这是最新版本。

您已经完成了460次更新@Amir它不会更改标题的背景图像属性,但会更改标题中的
。这意味着它会更改页面中的所有图像。不是我想要的@Fataoulas这是一个相对容易的修复,只要在超过数组长度(链接更新)时重置i=0。非常感谢,我已经接受了你的答案。出于知识方面的原因,当第三张图像变回第一张图像时,为什么在第一张图像显示之前会有这么短的白色背景?@Fataoulas不确定我是否遵循。。。?在我看来,每次的淡入淡出都是一样的。
function changeBg() {
    if (i >= imgs.length) i=0;
    $('#header').fadeTo('slow',opacity,function(){
        var val = "url('" + imgs[i++] + "')";
        console.log(val);
        $('#header').css('background-image',val).fadeTo('slow',1);
    });
}