javascript - 同步 jQuery 动画

标签 javascript jquery asynchronous jquery-animate

我试图让淡入(不透明度切换)和边框淡入(使用 jquery-animate-colors )同时触发,但我遇到了一些麻烦。有人可以帮助查看以下代码吗?

$.fn.extend({
  key_fadeIn: function() {
    return $(this).animate({
      opacity: "1"
    }, 600);
  },
  key_fadeOut: function() {
    return $(this).animate({
      opacity: "0.4"
    }, 600);
  }
});

fadeUnselected = function(row) {
  $("#bar > div").filter(function() {
    return $(this).id !== row;
  }).key_fadeOut();
  return $(row).key_fadeIn();
};

highlightRow = function(row, count) {
  return $(row).animate({
    "border-color": "#3737A2"
  }).animate({
    "border-color": "#FFFFFF"
  }).animate({
    "border-color": "#3737A2"
  }).animate({
    "border-color": "#FFFFFF"
  });
};


fadeUnselected("#foo");
highlightRow("#foo"); // doesn't fire until fadeUnselected is complete

非常感谢。谢谢!

最佳答案

默认情况下,JQuery 将动画放在效果队列中,这样它们就会一个接一个地发生。如果您希望动画立即发生,请在您的动画选项映射中设置 queue:false 标志。

例如,在您的情况下,

$(this).animate({
      opacity: "1"
    }, 600);

会变成

$(this).animate(
{
    opacity: "1"
}, 
{
    duration:600,
    queue:false
});

您可能希望使用选项映射并为边框动画设置队列。

http://api.jquery.com/animate/

关于javascript - 同步 jQuery 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803491/

相关文章:

c# - 如何结合异步调用对进度条进行编程?

c# - 等待数千个任务

javascript将一个函数分配给一个变量而不运行它

javascript - 如何在 Angular 6 中使用 Jasmine 通过 ngIf router.url 检查来检查元素是否可见

javascript - 当我在鼠标单击时将它重定向到处理程序(页面)时,如何使 javascript 每次都加载新数据(不使用缓存数据)

javascript - 在 ASP.NET MVC 4 View 中将数据从父窗口传递到弹出(子)窗口

javascript - 单击按钮时切换右键单击菜单 - jQuery

javascript - DataTables 在验证按钮后动态添加行中的数据

javascript - 如何检测点击了哪个删除按钮?

azure - 如果异步发送消息,Azure 服务总线队列中的消息顺序是什么?