当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery .finish()用法及代码示例


用法
.finish(  [queue ] ) => jQuery

说明:停止currently-running 动画,移除所有排队的动画,并完成匹配元素的所有动画。

  • 添加的版本:1.9.finish( [queue ] )

    • queue(默认:'fx')
      类型:String
      停止动画的队列的名称。

当在元素上调用.finish() 时,currently-running 动画和所有排队的动画(如果有)会立即停止,并将它们的 CSS 属性设置为它们的目标值。所有排队的动画都被删除。

如果提供了第一个参数,则只会停止由该字符串表示的队列中的动画。

.finish() 方法与.stop(true, true) 类似,它清除队列,当前动画跳转到其结束值。但是,它的不同之处在于 .finish() 也会导致所有 queued 动画的 CSS 属性也跳转到它们的结束值。

可以通过将属性 $.fx.off 设置为 true 来全局停止动画。完成此操作后,所有动画方法都会在调用时立即将元素设置为其最终状态,而不是显示效果。

例子:

单击 Go 按钮一次以启动动画,然后单击其他按钮以查看它们如何影响当前和排队的动画。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>finish demo</title>
  <style>
  .box {
    position: absolute;
    top: 10px;
    left: 10px;
    width: 15px;
    height: 15px;
    background: black;
  }
  #path {
    height: 244px;
    font-size: 70%;
    border-left: 2px dashed red;
    border-bottom: 2px dashed green;
    border-right: 2px dashed blue;
  }
  button {
    width: 12em;
    display: block;
    text-align: left;
    margin: 0 auto;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.5.0.js"></script>
</head>
<body>
 
<div class="box"></div>
<div id="path">
  <button id="go">Go</button>
  <br>
  <button id="bstt" class="b">.stop( true,true )</button>
  <button id="bcf" class="b">.clearQueue().finish()</button>
  <br>
  <button id="bstf" class="b">.stop( true, false )</button>
  <button id="bcs" class="b">.clearQueue().stop()</button>
  <br>
  <button id="bsff" class="b">.stop( false, false )</button>
  <button id="bs" class="b">.stop()</button>
  <br>
  <button id="bsft" class="b">.stop( false, true )</button>
  <br>
  <button id="bf" class="b">.finish()</button>
</div>
 
<script>
var horiz = $( "#path" ).width() - 20,
  vert = $( "#path" ).height() - 20;
 
var btns = {
  bstt: function() {
    $( "div.box" ).stop( true, true );
  },
  bs: function() {
    $( "div.box" ).stop();
  },
  bsft: function() {
    $( "div.box" ).stop( false, true );
  },
  bf: function() {
    $( "div.box" ).finish();
  },
  bcf: function() {
    $( "div.box" ).clearQueue().finish();
  },
  bsff: function() {
    $( "div.box" ).stop( false, false );
  },
  bstf: function() {
    $( "div.box" ).stop( true, false );
  },
  bcs: function() {
    $( "div.box" ).clearQueue().stop();
  }
};
 
$( "button.b" ).on( "click", function() {
  btns[ this.id ]();
});
 
$( "#go" ).on( "click", function() {
  $( ".box" )
    .clearQueue()
    .stop()
    .css({
      left: 10,
      top: 10
    })
    .animate({
      top: vert
    }, 3000 )
    .animate({
      left: horiz
    }, 3000 )
    .animate({
      top: 10
    }, 3000 );
});
</script>
 
</body>
</html>

演示:

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .finish()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。