.fadeOut()

要素をフェードアウトで非表示にします。

.fadeOut( [duration] [, callback] ) 1.0追加

戻り値:jQuery

引数 説明
[duration] フェードするアニメーション時間を指定します。
[callback] アニメーション完了後に実行したい関数を指定します。

.fadeOut( [options] ) 1.0追加

戻り値:jQuery

引数 説明
options

型:PlainObject

メソッドに渡すオプションのマップになります。

duration

型:Number or String 初期値:400

アニメーションがどれぐらいの時間、実行されるのかを決定する値を指定します。

easing

型:String 初期値:swing

トランジション(移り変わり)に使用されるイージング(easing)関数を表す文字列を指定します。

queue

型:Boolean or String 初期値:true

エフェクトのキューに、アニメーションを追加するか否かを示す真偽値を指定します。 falseの場合は、そのアニメーションは即座に開始されます。

jQuery1.7から、文字列で表現されるアニメーションをキューに追加するケースで、 queueオプションが文字列も受け付けることが可能になりました。 カスタムのキュー名が使用されている場合、アニメーションは自動的に実行されません。 開始するには、.dequeue("queuename")を呼びださなければいけません。

specialEasing

型:PlainObject

1つ以上のCSSプロパティを含むオブジェクトを指定します。 このCSSプロパティの値には、イージング(easing)を指定します。 (1.4 追加)

step

型:Function( Number now, Tween tween )

それぞれのアニメーション要素の、それぞれのアニメーションされるプロパティのために呼び出される関数を指定します。 この関数は、プロパティの値が設定される前にそれを変更する出来るように、Tweenオブジェクトを修正する機会を提供してくれます。

progress

型:Function( Promise animation, Number progress, Number remainingMs )

アニメーションの各ステップの後に呼び出される関数を指定します。 アプにメーションのプロパティの数に関係なく、アニメーションされる要素毎に1度だけ呼びだされます。 (1.8 追加)

complete

型:Function()

要素のアニメーションの完了時に一度だけ呼び出される関数を指定します。

start

型:Function( Promise animation )

要素のアニメーションが開始される際に呼び出される関数を指定します。 (1.8 追加)

done

型:Function( Promise animation, Boolean jumpedToEnd )

要素のアニメーションの完了の際に呼び出される関数を指定します。 (Promiseオブジェクトは解決(resolved)されています) (1.8 追加)

fail

型:Function( Promise animation, Boolean jumpedToEnd )

要素のアニメーションの完了失敗の際に呼び出される関数を指定します。 (Promiseオブジェクトは拒絶(rejected)されています) (1.8 追加)

always

型:Function( Promise animation, Boolean jumpedToEnd )

要素のアニメーションが完了、または完了せずに停止した際に呼び出される関数を指定します。 (Promiseオブジェクトは、解決(resolved)または拒絶(rejected)のいずれかになります。) (1.8 追加)

.fadeOut( [duration] [, easing] [, callback] ) 1.4.3追加

戻り値:jQuery

引数 説明
[duration] フェードするアニメーション時間を指定します。
[easing] アニメーションの変化の種類を指定します。
[callback] アニメーション完了後に実行したい関数を指定します。

解説

.fadeOut()メソッドは、一致した要素のopacity(不透明度)をアニメーションします。 opacityが0に達すると、displayのstyleがnoneに設定されるため、 その要素がページのレイアウトに影響を与えなくなります。

durationへの数値はミリ秒として扱われ、高い値はアニメーションを遅くし、低い値はアニメーションを速めます。 文字列の'fast''slow'は、 それぞれ200600ミリ秒のdurationとして扱われます。 他の文字列が指定された場合、またはdurationパラメーターが省略された場合、 デフォルトの400ミリ秒が使用されます。

下記のような単純な画像の要素をアニメーションさせることも可能です。

<div id="clickme">
  Click here
</div>
<img id="book" src="book.png" alt="" width="100" height="123">

初めに表示されていた要素を、ゆっくり非表示にします。

$( "#clickme" ).click(function() {
  $( "#book" ).fadeOut( "slow", function() {
    // アニメーション完了時に実行させたい処理
  });
});
0043 06 fadeout

注意: 不要なDOM操作を避けるために、.fadeOut()は既に隠されようとしている要素を、隠すことをしません。 jQueryが要素を隠そうとしているか否かは、 :hiddenセレクタで確認します。

イージング(easing)

jQuery 1.4.3からは、イージング(easing)関数の文字列を任意に指定できるようになりました。 イージング関数は、アニメーションの異なるポイントでの進行の速度を指定するものです。

jQueryライブラリで指定できるイージングは、デフォルトのswingと、 一定のペースで進行するlinearのみです。 より多くのイージング関数を使用するにはプラグインが必要で、 特に有名なのはjQuery UIになります。

コールバック関数

指定された場合、アニメーションが完了した際に実行されます。 これは、続けて異なるアニメーションを実行したい際に便利です。 このコールバックは引数を送りませんが、thisにはアニメーションされているDOM要素が設定されています。 もし、複数の要素がアニメーションされている場合、 コールバックは一致した要素ごとに実行されるのであり、アニメーションごとに実行されるわけでは無いことに注意しなければいけません。

jQuery 1.6から.promise()メソッドを結合して、 deferred.done()メソッドで全ての一致している要素のアニメーションの完了時に、 単一のコールバックを実行することが可能になりました。(.promise()の例を参照)

アニメーションのOFF

  • .fadeIn()を含む全てのjQueryのエフェクトは、 jQuery.fx.off = trueにすることで実際にはdurationを0に設定することで、 グローバル全体でOFFにすることが可能です。 詳細は、jQuery.fx.offを参照してください。

デモ

全てのP要素がフェードアウトし、600ミリ秒でアニメーションが完了します。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>fadeOut demo</title>
  <style>
  p {
    font-size: 150%;
    cursor: pointer;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<p>
  If you click on this paragraph
  you'll see it just fade away.
</p>
 
<script>
$( "p" ).click(function() {
  $( "p" ).fadeOut( "slow" );
});
</script>
 
</body>
</html>

クリックしたSPAN要素部分がフェードアウトします。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>fadeOut demo</title>
  <style>
  span {
    cursor: pointer;
  }
  span.hilite {
    background: yellow;
  }
  div {
    display: inline;
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<h3>Find the modifiers - <div></div></h3>
<p>
  If you <span>really</span> want to go outside
  <span>in the cold</span> then make sure to wear
  your <span>warm</span> jacket given to you by
  your <span>favorite</span> teacher.
</p>
 
<script>
$( "span" ).click(function() {
  $( this ).fadeOut( 1000, function() {
    $( "div" ).text( "'" + $( this ).text() + "' has faded!" );
    $( this ).remove();
  });
});
$( "span" ).hover(function() {
  $( this ).addClass( "hilite" );
}, function() {
  $( this ).removeClass( "hilite" );
});
</script>
 
</body>
</html>

2つのDIV要素がフェードアウトします。 1つは"linear"イージングで、もう1つはデフォルトである"swing"イージングが使用されています。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>fadeOut demo</title>
  <style>
  .box,
  button {
    float: left;
    margin: 5px 10px 5px 0;
  }
  .box {
    height: 80px;
    width: 80px;
    background: #090;
  }
  #log {
    clear: left;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<button id="btn1">fade out</button>
<button id="btn2">show</button>
 
<div id="log"></div>
 
<div id="box1" class="box">linear</div>
<div id="box2" class="box">swing</div>
 
<script>
$( "#btn1" ).click(function() {
  function complete() {
    $( "<div>" ).text( this.id ).appendTo( "#log" );
  }
  $( "#box1" ).fadeOut( 1600, "linear", complete );
  $( "#box2" ).fadeOut( 1600, complete );
});
 
$( "#btn2" ).click(function() {
  $( "div" ).show();
  $( "#log" ).empty();
});
</script>
 
</body>
</html>

 Back to top

© 2010 - 2017 STUDIO KINGDOM