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

标签 javascript jquery

我正在尝试编辑一个脚本来更改 div 的图像,如下所示,以更改 #header 的背景图像属性。

正如你在我的 fiddle 中看到的,http://jsfiddle.net/HsKpq/460/我试图将 图像显示到 $('#header').css('background-image',.................).fadeTo( '慢',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://...')”作为 "background-image" CSS property
<小时/>
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);
    });
}

这是updated demo .

关于javascript - 如何使用 jQuery 和图像数组更改 #header 的 css 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24130320/

相关文章:

javascript - React/onClick 函数不会循环 if/else

javascript - 检查设备是否在 Flask 中移动

javascript - 从动态生成的表中的单元格获取值

javascript - 如何编写 n 阶贝塞尔曲线

javascript - JSON 字符串化子列表

javascript - JQuery - 更改事件链接颜色

javascript - 如何通过增加输入数字来动态更改价格

javascript - 单击时显示菜单

jquery - 在已经渲染的 jquery flot 图上绘制一个新系列

javascript - 在页面加载时按字母顺序对 html 表进行排序