为什么动画和 addClass 的行为不同?

发布于 2024-12-08 12:51:14 字数 472 浏览 0 评论 0原文

我有一个 div,其初始颜色为绿色

我不明白为什么他立即获得红色颜色**,

而动画在队列中正常。

队列正常并且按顺序但是颜色立即更改。

他不是应该在第二个动画之后吗?

动画优先级与 addClass 之间有区别吗?

$("div").show("slow").animate({left:'+=200'},2000).animate({top:'+=200'},2000).css('background-color','red'); 

I have a div which its initial color is green.

I don't understand why he is getting the red color ** immediately** ,

while the animations are fine in queue.

The queue is fine and by order , but the color is changed immediatly.

Isn't he supposed to be after the second animation ?

Is there difference between priority of animations vs addClass ?

$("div").show("slow").animate({left:'+=200'},2000).animate({top:'+=200'},2000).css('background-color','red'); 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

℉服软 2024-12-15 12:51:14

css 方法不会将更改放入动画队列,因此当您运行代码时它会立即更改。

您可以使用 queue 方法将 CSS 更改放入动画队列中:

$("div").show("slow")
.animate({left:'+=200'},2000)
.animate({top:'+=200'},2000)
.queue(function(){
  $(this).css('background-color','red');
});

The css method doesn't put the change on the animation queue, so it's changed immediately when you run the code.

You can put the CSS change in the animation queue using the queue method:

$("div").show("slow")
.animate({left:'+=200'},2000)
.animate({top:'+=200'},2000)
.queue(function(){
  $(this).css('background-color','red');
});
帝王念 2024-12-15 12:51:14

css 不是排队函数。它立即执行。您可以选择:

$("div").show("slow").animate({left:'+=200'},2000)
.animate({top:'+=200'},2000, function(){ $(this).css('background-color','red'); });

$("div").show("slow").animate({left:'+=200'},2000).animate({top:'+=200'},2000)
.queue(function(){ $(this).css('background-color','red'); });

css isn't a queued function. It executes immediately. You can choose between:

$("div").show("slow").animate({left:'+=200'},2000)
.animate({top:'+=200'},2000, function(){ $(this).css('background-color','red'); });

and

$("div").show("slow").animate({left:'+=200'},2000).animate({top:'+=200'},2000)
.queue(function(){ $(this).css('background-color','red'); });
枫林﹌晚霞¤ 2024-12-15 12:51:14
$("div")
    .animate({left:'+=200', top:'+=200', display: 'block'}, 2000, 
    function() {
       $(this).css('background-color','red');
    }
);

请原谅我的缩进。

$("div")
    .animate({left:'+=200', top:'+=200', display: 'block'}, 2000, 
    function() {
       $(this).css('background-color','red');
    }
);

Excuse my indenting.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文