Deep Insider の Tutor コーナー
>>  Deep Insider は本サイトからスピンオフした姉妹サイトです。よろしく! 
jQuery UI逆引きリファレンス

jQuery UI逆引きリファレンス

jQuery UIの拡張されたエフェクトを利用するには?(show/hide/toggle/effect編)

2013年10月24日

jQuery標準の各種エフェクト機能を拡張して、よりリッチな効果をシンプルなコードで実現できる、jQuery UIのエフェクト機能の基本的な使い方について紹介。

  • このエントリーをはてなブックマークに追加

jQuery UIとは?

 jQuery UIは、jQueryを拡張するライブラリ(プラグイン)の一種で、名前のとおり、ユーザー・インターフェイス(UI)に関わる機能を提供します。jQuery UIの導入方法や使い方、jQuery UIが提供する主要なコンポーネントについては、「jQuery UI逆引きリファレンス: jQuery UIを利用するには?」を参照してください。

 jQueryでは、標準でもさまざまなエフェクト機能が提供されていますが、jQuery UIはこれらの機能をさらに拡張し、よりリッチな効果を、シンプルなコードで実装できます。機能の拡張は、jQuery標準のメソッドに対して引数を追加する、という形で行われていますので、jQueryを使い慣れた人にとっては、直感的に利用できるのもうれしいポイントです。

 本稿で紹介するのは、要素の表示/非表示を制御するshow/hide/toggleメソッド、そして、エフェクト適用のための汎用的なメソッドeffectです。

要素の表示/非表示時にエフェクトを適用する ― show/hide/toggleメソッド

 jQuery UIでは、jQuery標準のshow/hide/toggleメソッドを拡張して、要素の表示/非表示の際にもエフェクトを指定できます。例えば以下は、選択ボックスで指定されたエフェクトで、要素を表示/非表示するサンプルです。

HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Effect</title>
<link type="text/css" rel="stylesheet"
  href="http://code.jquery.com/ui/1.10.3/themes/cupertino/jquery-ui.min.css" />
<script type="text/javascript"
  src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript"
  src="http://code.jquery.com/ui/1.10.3/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function() {
  // ボタン・クリックで表示/非表示を切替
  $('#run').click(function() {
    // 選択ボックスの値に応じてエフェクトを切り替え
    $('#box').toggle($('#eff').val(), 2000);
  });
});
</script>
</head>
<body>
<select id="eff">
  <option value="blind">Blind</option>
  <option value="bounce">Bounce</option>
  <option value="clip">Clip</option>
  <option value="drop">Drop</option>
  <option value="explode">Explode</option>
  <option value="fold">Fold</option>
  <option value="highlight">Highlight</option>
  <option value="puff">Puff</option>
  <option value="pulsate">Pulsate</option>
  <option value="scale">Scale</option>
  <option value="shake">Shake</option>
  <option value="size">Size</option>
  <option value="slide">Slide</option>
</select>
<input id="run" type="button" value="Go" />
<div id="box" style="width:130px;height:130px;background-color:#ff0">いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせすん</div>
</body>
</html>
指定されたエフェクトで要素を表示/非表示するコード(effect.html)

「explode」を選択して[Go]ボタンをクリック

エフェクトとして「shake」を指定した場合の動作
エフェクトとして「explode」を指定した場合の動作

 拡張されたshow/hide/toggleメソッドの構文は、以下のとおりです(以下はtoggleメソッドのそれを示していますが、show/hideメソッドも同様です)。

[構文]toggleメソッド

toggle(effect [,opts] [,dur] [,callback])

  • effect: エフェクトの種類
  • opts: エフェクトのオプション
  • dur: 再生時間(ミリ秒)
  • callback: エフェクト終了時に実行するコールバック関数

 太字の部分が、jQuery UIで拡張された引数です。引数effect/optsに指定できる値には、以下のようなものがあります。それぞれの動きは、上のサンプルコードで確認してください。

名称概要
オプション名概要デフォルト値
blind 上下(左右)にブラインドを開く/閉じるように
direction 要素を非表示にする際の方向(up、down、left、right、vertical、horizontal) up
bounce バウンドするように
distance バインドの最大距離(px) 20
times バウンドする回数 5
clip 中央から上下(左右)に開く/閉じるように
direction 開閉の方向(vertical、horizontal) vertical
drop 指定方向にスライドしながらフェードイン/アウト
direction スライドの方向(up、down、left、right) left
explode 欠片が集まるように表示&爆発するように非表示
pieces 分かれる欠片の数 9
fade フェードアウト/イン
fold 左右→上下に折り畳むように開く/閉じる
size 最初に折り畳まれた時の幅(高さ) 15
horizFirst 最初に左右に折り畳むか false
hightlight ハイライトするように光ってから元の色に
color ハイライトの色 #ffff99
puff ふわっと膨らむように&膨らんだものが元の大きさに
percent 膨らむ度合い(%) 150
pulsate 点滅
times 点滅する回数 5
scale 拡大/縮小
direction 拡大/縮小の方向(both、vertical、horizontal) both
origin 消える/現れるポイント(top、middle、bottom、left、center、right*1 ["middle", "center"]
percent 拡大する割合
shake 左右(上下)に揺れる
direction 最初に揺れる方向(left、right、up、down) left
distance 揺れる幅 20
times 揺れる回数 3
size 指定のサイズに要素をリサイズ
to リサイズ後のサイズ
origin 基点となる位置(top、middle、bottom、left、center、right) ["top", "left"]
slide 左から右へ(上から下へ)スライドするように
direction スライド方向(left、right、top、bottom)
distance スライドする距離 ターゲット要素のサイズによる
jQuery UIで利用できるエフェクト
  • *1 middleは縦方向の中央位置、centerは横方向の中央位置を表します。

エフェクトを独立して利用する ― effectメソッド

 先ほどの表で示したエフェクトは、effectメソッドを利用することで表示/非表示の動作とは切り離して動作させることもできます*2

  • *2 show/hide/toggleメソッドも、内部的にはeffectメソッドを呼び出しているにすぎません。
JavaScript
$(function() {
  $('#run').click(function() {
    $('#box').effect($('#eff').val(), 2000);
  });
});
effectメソッドで要素にエフェクトを適用(effect2.html)

「Shake」を選択して[Go]ボタンをクリック

エフェクトとして「shake」を指定した場合の動作1

ボックス枠が左右に揺れるエフェクトが適用される

エフェクトとして「shake」を指定した場合の動作2
エフェクトとして「shake」を指定した場合の動作

 ただし、以下のエフェクトについてはアニメーションの実行後に要素が非表示になってしまう(=hideメソッドと同じ動作)ので、注意してください。

  • blind
  • clip
  • drop
  • explode
  • fold
  • puff

※以下では、本稿の前後を合わせて5回分(第13回~第17回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

jQuery UI逆引きリファレンス
13. Spinnerウィジェットで数値入力ボックスを生成するには?

数値入力ボックスを実装するためのSpinnerウィジェットの基本的な使い方について紹介。

jQuery UI逆引きリファレンス
14. Sliderウィジェットでスライダーを生成するには?

ツマミをマウスでドラッグすることで値を変更できるスライダーを実装するためのSliderウィジェットの基本的な使い方について紹介。

jQuery UI逆引きリファレンス
15. 【現在、表示中】≫ jQuery UIの拡張されたエフェクトを利用するには?(show/hide/toggle/effect編)

jQuery標準の各種エフェクト機能を拡張して、よりリッチな効果をシンプルなコードで実現できる、jQuery UIのエフェクト機能の基本的な使い方について紹介。

jQuery UI逆引きリファレンス
16. jQuery UIで拡張されたエフェクト機能を利用するには?(effect/xxxxxClass編)

jQuery標準の各種エフェクト機能を拡張して、よりリッチな効果をシンプルなコードで実現できる、jQuery UIのエフェクト機能の中から、effectメソッドで利用できるtransferエフェクト、スタイル・クラスを着脱するxxxxxClassメソッドついて紹介。

jQuery UI逆引きリファレンス
17. AutoCompleteウィジェットでオートコンプリート機能付きのテキストボックスを生成するには?

テキストボックスに最初の何文字かを入力すると、それにマッチする候補リストを表示するオートコンプリート機能を実現できる、AutoCompleteウィジェットの基本的な実装方法を紹介。

サイトからのお知らせ

Twitterでつぶやこう!