我无法弄清楚为什么function()
在.animate
之后无法执行。示例jQuery代码如下:
$('#spotlight_img_' + thisSpotId).css('z-index', zIndex).animate({ bottom: 0 }, { duration: 500, queue: true }, function() { alert('animation complete'); }); $('#spotlight_img_' + lastSpotId).animate({ bottom: "-400px" }, { duration: 0, queue: true });
这是第1行中的函数,它在技术上应该包含第2行中的内容。
我需要它如何工作:
1 - 动画$('#spotlight_img_' + thisSpotId)
向上
2 - 以$('#spotlight_img_' + lastSpotId)
为动画。
现在因为第二个动画是0秒长,它会在第一个动画完成之前发生。
您可以在此处看到它:http://design.vitalmtb.com/index2.html
我真的很感谢你的帮助!
答案 0 :(得分:10)
这将取代第1行(为便于阅读而分成多行):
$('#spotlight_img_' + thisSpotId).css('z-index', zIndex)
.animate({ bottom: 0 }, {
duration: 500,
queue: true,
complete: function() { alert('animation complete'); }
});
animate
有两个版本:
.animate( properties, [ duration ], [ easing ], [ callback ] )
.animate( properties, options )
您正在使用传递选项地图的第二个版本,因此您需要使用complete
选项指定回调。
由于queue: true
是默认值,您还可以使用第一个版本:
$('#spotlight_img_' + thisSpotId).css('z-index', zIndex)
.animate({ bottom: 0 }, 500, function() { alert('animation complete'); });