Javascript 同步动画,或在动画的中间点调用

Javascript 同步动画,或在动画的中间点调用,javascript,jquery,animation,Javascript,Jquery,Animation,我在JQuery中有一个有点困难的动画,我还没有找到处理它的好方法。我有一个移动站点,屏幕上有一个场景,显示一系列选择。当做出一个选择时,选择从屏幕上滑下,同时一个城市的新场景被引入(它应该是模拟驾驶的)——这个场景,而不是停在屏幕的中心,它一路通过屏幕的另一端。问题是,当它到达中心时,我想触发一个新的div进入它的后面,与速度匹配,等等,所以一切都同步出现 如果我将城市场景的动画设置为两部分,一部分设置为中心,可以触发新的选择场景进入,另一部分设置为离开屏幕,则会出现明显的抖动。我还没有找到触

我在JQuery中有一个有点困难的动画,我还没有找到处理它的好方法。我有一个移动站点,屏幕上有一个场景,显示一系列选择。当做出一个选择时,选择从屏幕上滑下,同时一个城市的新场景被引入(它应该是模拟驾驶的)——这个场景,而不是停在屏幕的中心,它一路通过屏幕的另一端。问题是,当它到达中心时,我想触发一个新的div进入它的后面,与速度匹配,等等,所以一切都同步出现

如果我将城市场景的动画设置为两部分,一部分设置为中心,可以触发新的选择场景进入,另一部分设置为离开屏幕,则会出现明显的抖动。我还没有找到触发延迟的方法,因为在延迟结束时,我需要调用一个自定义函数,而不是jquery函数。这是我的代码:

Driving Scene (called when choices begin animating out):

$('#interlude').animate({marginLeft: -viewportW + "px"},3000,'linear',function(){
    $('#interlude').remove();
    displayScene(sceneID); //need to figure out how to call this at the halfway point
});
在动画之前使用setTimeout()在第一个动画的中途触发第二个动画

var animateTime = 3000;
setTimeout("displayScene(" + sceneId + ")", animateTime / 2);
$('#interlude').animate({marginLeft: -viewportW + "px"},animateTime,'linear',function(){
    $('#interlude').remove();
});

我不使用JQuery,但您不能使用.delay方法吗?它只调用JQuery函数(据我所知),而不是用户定义的函数。出于某种原因,这会立即触发。很抱歉,我遗漏了第一个参数的引号。它已被编辑以反映更改。使用
displaysecene.bind(window,sceneId)
不是更好吗?