JQUERY 基础教程
JQUERY 效果
JQUERY 操纵
JQUERY 高级教程
JQUERY 示例
JQUERY 参考资料

jQuery Stop 动画

在本教程中,您将学习如何使用 jQuery 停止运行动画。

jQuery stop() 方法

jQuery stop() 方法用于在完成之前停止当前在选定元素上运行的 jQuery 动画或效果。

jQuery stop() 方法的基本语法可以通过以下方式给出:

$(selector).stop(stopAll, goToEnd);

上述语法中的参数含义如下:

  • 可选的 stopAll 布尔参数指定是否删除排队的动画。 默认值为false,即只停止当前动画,队列中的其余动画将在之后运行。
  • 可选的 goToEnd 布尔参数指定是否立即完成当前动画。 默认值为 false

这是一个简单的例子,演示了实际操作中的 jQuery stop() 方法,在该方法中,您可以在单击按钮时启动和停止动画。

<script>
$(document).ready(function(){
    // 开始动画
    $(".start-btn").click(function(){
      $("img").animate({left: "+=150px"}, 2000);
    });
 
    // 停止运行动画
    $(".stop-btn").click(function(){
      $("img").stop();
    });
    
    // 反方向开始动画
    $(".back-btn").click(function(){
      $("img").animate({left: "-=150px"}, 2000);
    });
 
    // 重置为默认
    $(".reset-btn").click(function(){
      $("img").animate({left: "0"}, "fast");
    });
});
</script>

注意: jQuery stop() 方法适用于所有 jQuery 效果,例如 渐变, 滑动, 动画显示和隐藏 效果和 自定义动画

这是此方法的另一个示例,如果在启动动画后但在完成之前再次单击"滑动切换"按钮,则动画将立即从保存的起点以相反的方向开始。

<script>
$(document).ready(function(){
    // 杀死并切换当前的滑动动画
    $(".toggle-btn").on("click", function(){
        $(".box").stop().slideToggle(1000);
    });
});
</script>

创建平滑悬停效果

在创建动画悬停效果时,您可能面临的常见问题之一是多个排队动画,当您快速放置和移除鼠标光标时。 因为,在这种情况下,mouseentermouseleave 事件会在动画完成之前快速触发。 为了避免这个问题并创建一个漂亮平滑的悬停效果,您可以将 stop(true, true) 添加到方法链中,如下所示:

<script>
$(document).ready(function(){
    $(".box").hover(function(){
        $(this).find("img").stop(true, true).fadeOut();
    }, function(){
        $(this).find("img").stop(true, true).fadeIn();
    });
});
</script>

注意: jQuery 方法 stop(true, true) 清除所有排队的动画并将当前动画跳转到最终值。

Advertisements