3つめはEffectです。
3.Effectのサンプルスクリプト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | < html lang = "ja" > < head > < meta charset = "utf-8" /> < style > .toggler { width: 500px; height: 200px; } #effect { width: 400px; height: 150px; background-color:#000; color:#fff; text-align:center; padding:25px;} .ui-effects-transfer { border: 2px dotted gray;} </ style > < script > $(function() { function runEffect() { //runEffect関数の定義 var selectedEffect = $( "#effectTypes" ).val(); //エフェクトの種類を取得 var options = {}; //殆どのエフェクトはオプションは不要 if ( selectedEffect === "scale" ) { //scale,transfer,sizeは必要なのでセット options = { percent: 0 }; } else if ( selectedEffect === "transfer" ) { options = { to: "#button", className: "ui-effects-transfer" }; } else if ( selectedEffect === "size" ) { options = { to: { width: 200, height: 60 } }; } $( "#effect" ).effect( selectedEffect, options, 500, callback); //エフェクト実行 }; function callback() { //実行後のコールバックを定義 setTimeout(function() { $( "#effect" ).removeAttr( "style" ).hide().fadeIn(); }, 1000 ); }; $( "#button" ).click(function() { //ボタンをクックしたらrunEffectを実行 runEffect(); return false; }); }); </ script > </ head > < body > < div class = "toggler" > < div id = "effect" >このdiv要素にEffectがかかります</ div > </ div > < select name = "effects" id = "effectTypes" > < 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 = "fade" >Fade</ 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 > < option value = "transfer" >Transfer</ option > </ select > < input type = "button" id = "button" value = "click" > </ body > </ html > |
→結構長いですがエフェクトの種類が多いので、
記述自体はそれほど難しいものではありません。
scriptの内容は主に次の3つです。
・選ばれたエフェクトを実行するrunEffect関数
・runEffectが実行された後に実行される(=callbackされる)callback関数
・クリック時にrunEffectを実行する記述
4つめはHide。
本日はこれで最後です。
4.Hideのサンプルスクリプト
Effect同様、様々なパターンがあります。
スクリプトもちょっと長いですが、セレクトボックスでパターンを選べるようにしているから。
1つのみであればもっと簡単になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | < html lang = "ja" > < head > < meta charset = "utf-8" > < link rel = "stylesheet" href = "/resources/demos/style.css" /> < style > .toggler{ width: 500px; height: 200px; } #effect { width: 400px; height: 135px; border:1px solid #000; padding:5px;} </ style > < script > $(function() { function runEffect() { var selectedEffect = $( "#effectTypes" ).val(); //選択されたエフェクトが何か取得 var options = {}; //オプションは殆どのエフェクトでは設定しなくてOK if (selectedEffect === "scale"){ //scaleとsizeが選択されている場合はオプションを設定する options={percent:0}; } else if (selectedEffect === "size") { options={to:{width:200, height:60}}; } $( "#effect" ).hide(selectedEffect, options, 1000, callback); //実行 }; function callback(){ //一旦hideしたら再び表示する setTimeout(function(){ $( "#effect" ).removeAttr("style").hide().fadeIn(); }, 1000 ); }; $( "#button" ).click(function() { runEffect(); return false; }); }); </ script > </ head > < body > < input type = "button" id = "button" value = "click" > < div class = "toggler" > < div id = "effect" > < h3 >Hide</ h3 > < p >このボックスが選択したアクションで隠れます</ p > </ div > </ div > |
→様々なhideのアクションがありますね。
5.まとめ
いかがだったでしょうか。
エフェクト編は非常に動きが豊富につけられるので、使い途が色々考えられますね。ユーザビリティを高め、楽しいサイトを作ってきましょう。
次回は引き続きエフェクト編です。
6.参考ページ
jQueryUI公式サイト:http://jqueryui.com/
jQuery 日本語リファレンス:http://js.studio-kingdom.com/jqueryui/widgets