多个 jQuery 效果同时并行

Posted

技术标签:

【中文标题】多个 jQuery 效果同时并行【英文标题】:Multiple jQuery-Effects parallel at same time 【发布时间】:2012-02-26 00:08:43 【问题描述】:

我想在子菜单中淡入淡出并同时选择位置。

喜欢酷酷的 Coda-Tooltip (http://panic.com/coda/) 超过“下载”。

这次我的代码只是做了淡入淡出:

$(document).ready(function()
    $('#access').hover(function () 
        $(this).children('ul').fadeIn();
         $(this).children('ul')...position();

    , function () 
        $(this).children('ul').fadeOut('slow');
        $(this).children('ul')...position();
    );
);

谢谢 英戈

现在我这样做:

$(document).ready(function()
$('#access').hover(function () 
    $(this).children('ul').stop().animate(opacity:1, paddingTop:'10px', 400);

, function () 
    $(this).children('ul').stop().animate(opacity:0, paddingTop:'0px', 300);
);

);

Fadein 和填充效果很好。但不是通过淡出。我的错误是什么?

【问题讨论】:

这个平行动画的答案***.com/questions/811750/… 在我的回答中查看示例。我一直在使用它并且非常喜欢它。 【参考方案1】:

我能想到的最好的方法是利用 jQuery swichClass 。它使用animateimplicitly

查看这个小提琴示例: http://jsfiddle.net/xyDwV/1/

CSS:

.before
    background-color : red;
    height : 400px;
    width :200px;
    opacity : 1;

.after
    background-color : blue;
    height : 200px;
    width : 400px;
    opacity : 0.5;

jquery:

$(document).ready(function()
  $('#mydiv').hover(function () 
        $(this).switchClass('before','after',500);
    , function () 
        $(this).switchClass('after','before',500);
  );
);

【讨论】:

【参考方案2】:

只需使用 animate() 滚动您自己的动画。并且永远不要忘记先使用stop 取消当前正在运行的动画。

$(this).find('ul').stop().animate(opacity:1, top:'...', left:'...');

【讨论】:

非常感谢罗曼。我尝试了一些东西......请查看我编辑的问题。

以上是关于多个 jQuery 效果同时并行的主要内容,如果未能解决你的问题,请参考以下文章

c#基础并行Linq

进程互斥与同步

Go协程并发信道

多进程概念

[GO]并行和并发的区别

python并发编程基础