0

我想在同一个元素上运行两个不同的动画队列,因为它们可以单独修改。

我对第一个使用标准的 fx 队列,所以我决定对第二个使用自定义队列,但是动画没有开始。

jQuery 文档说它至少需要 jQuery 1.7,并且需要.dequeue()在自定义队列的情况下手动调用,这一点没问题。

所以,这是我的代码:

var css = {
    'margin-top' : '50px',
    'margin-left' : '50px'
}

$("#myDiv").stop("customQueue").animate(css, {
    duration: 400,
    queue: "customQueue"
}).dequeue("customQueue");

这绝对没有任何作用(也没有 js 错误)。

虽然这工作正常(但没有动画)。

var css = {
    'margin-top' : '50px',
    'margin-left' : '50px'
}

$("#myDiv").css(lCss);

有人知道我做错了什么吗?

编辑:我在这里尝试做的是使用函数的queue选项jQuery.animate(),如jQuery 文档中所述,而不是jQuery.queue()函数。

编辑 2:把 @Balint 的修改

4

2 回答 2

1

修正你的语法

var css = {
    'margin-top' : "50px",
    'margin-left' : "50px"
}

$("#myDiv").stop("customQueue").animate(css, {
    duration: 400,
    queue: "customQueue"
}).dequeue("customQueue");

jsFiddle

于 2013-07-05T09:17:29.277 回答
0

好的,我发现了问题所在:

我说我正在使用标准的 fx 队列来处理其他效果,但是当我用它中断它时,$.stop()会停止每个队列,而不仅仅是 fx。

因此,如果像我一样,您正在使用带有标准队列的自定义队列,请停止标准队列,stop("fx")而不仅仅是stop()

感谢大家的帮助。

于 2013-07-05T10:00:59.760 回答