这个jquery动画函数出了什么问题?

时间:2012-03-21 14:21:07

标签: javascript jquery-animate

animImage('history_main_image.png');
function animImage(img) {
    $('#slider').delay(3000).animate({opacity: 0}, 'slow', function(img) {$('#slider').css('background-image','url(images/' + img +')').animate({opacity: 1});});
}

我已经使它成为滑块元素中背景动画的功能。但它不起作用。当我检查chrome的检查元素选项中的输出时。它显示background-image:images /未定义

2 个答案:

答案 0 :(得分:4)

您传递给animate()的回调采用img参数,并使用它来构建背景图像的URL。这不起作用,因为animate()没有将任何参数传递给你的回调。

相反,您可以删除该参数并使用最初传递给img的{​​{1}}参数。该变量存在于调用者的范围内,因此它将在回调中被捕获并可访问:

animImage()

答案 1 :(得分:0)

animImage('history_main_image.png');
function animImage(img) {
   function myimg(){return img;}
    $('#slider').delay(3000).animate({opacity: 0}, 'slow', function() {$('#slider').css('background-image','url(images/' + myimg() +')').animate({opacity: 1});});
}