jQuery动画重复故障

时间:2010-09-13 15:27:09

标签: jquery jquery-animate background-color

我有一组输入,我希望在悬停后更改背景颜色,然后在鼠标移出后恢复原来的颜色。

工作正常,有一个小故障。当我将鼠标悬停在那些输入上,不悬停并再次快速悬停时,它们会在一段时间后眨眼。我该如何解决?

这是我的代码:

    $("input").hover(
    function(){
        $(this).animate({backgroundColor: '#fff'}, 800);
},  function(){
        $(this).animate({backgroundColor: '#666'}, 1400);
    });

(我不想改变动画时间)

我找到了一个有效的例子:

http://veerle.duoh.com/ - 检查SEARCH输入 - 当你悬停然后快速关闭鼠标时 - 它不会完成动画甚至闪烁。

2 个答案:

答案 0 :(得分:3)

嘿,您必须使用stop()函数来停止当前动画,否则jquery将在开始新动画之前完成动画堆栈(队列中的所有其他动画)...请参阅jQuery queue() function文档以了解如何jQuery FX工作......

    $("input").hover(
    function(){
        $(this).stop().animate({backgroundColor: '#fff'}, 800);
    },  function(){
        $(this).stop().animate({backgroundColor: '#666'}, 1400);
    });

请参阅jQuery stop() function文档。

答案 1 :(得分:1)

这是一个关于从动画构建中停止jQuery的快速教程。我曾多次使用过这种技术。

http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup