代码之家  ›  专栏  ›  技术社区  ›  methodin

jquery自定义队列

  •  3
  • methodin  · 技术社区  · 14 年前

    我要做的是隔离动画,这样我就可以在不影响重要动画的情况下杀死某些动画。我正在尝试将mouseenter/mouseleave动画添加到队列中,以便在其他动画开始时杀死它们。下面的代码不会停止排队的动画。它的行为类似于默认设置,动画将在队列中累积并播放。什么给予?

    $('.item').mouseenter(function(){
        $(this).clearQueue("test");
        $(this).queue("test",function(next){        
            $(this).animate({
                height: '250px'
            },500);
        });
        $(this).dequeue("test");
    }).mouseleave(function(){
        $(this).clearQueue("test");
        $(this).queue("test",function(next){        
            $(this).animate({
                height: '140px'
            }, 250);
        });
        $(this).dequeue("test");
    })
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Nick Craver    14 年前

    因为你运行的函数 "test" 队列完成 立即 所以结果是你 立即 添加内容到 fx (默认动画)队列,您的 “测试” 队列始终保持为空。

    在打电话之前,里面只有一件东西 .dequeue() …然后 外汇 队列有一个新条目,该队列将不断生成 那个 排队,你永远不会清空。就像这样:

    • $(this).clearQueue("test"); -此队列已为空
    • $(this).queue("test", ...); -将项添加到 test 队列
    • $(this).animate({... }); -在上排队动画 外汇 队列
    • $(this).dequeue("test"); -启动 测试 队列,从开始立即清空 .animate() 立即返回。