25.jQueryの使い方 ~イベント監視とアニメーション~
引き続きjQueryについて学習しましたので、整理します。
中でも「イベント監視」と「アニメーション」についてやっていきます。
イベント監視
JavaScriptの所でもやりました、イベント監視。
状態の変化があった時に何らかの処理をさせたい
時に使うものでしたね。
今回もJavaScriptと比較しつつ確認していきます。
要素のクリックを検出して処理を実行
次の処理を行うコードを書きます
ブラウザに読み込まれたHTMLの
id属性にtestが設定されている要素が
クリックされた時に
処理を実行する
まずはJavaScriptから
document.getElementById('test').addEventListener('click',function(){実行させたい処理});
これをjQueryで書くと
$('#test').click(function(){実行させたい処理});
こうなります。
超短いですね。
どちらも「実行させたい処理」を省略して書いてますが、
ここの内部処理の書き方でもコード量に差が出てくるはずです。
要素にカーソルが乗ったときの処理
次の処理を行うコードを書きます
ブラウザに読み込まれたHTMLの
id属性にtestが設定されている要素に
マススカーソルが乗った時に
処理を実行する
まずはJavaScriptから
document.getElementById('test').addEventListener('mouseover', function() {実行させたい処理});
引数が違うだけで、クリックと一緒ですね。
jQueryで書くと、
$('#test').hover(function(){実行させたい処理1},function(){実行させたい処理2});
こうなります。
いやいや、なんか処理2つ書いてるんですけど、コード量増えてるんですけどと思ったそこのあなた!
私も同じ思いでした。
これは実は
引数1の処理がマウスが乗った時の処理
引数2の処理がマウスが外れた時の処理
を書いています。
つまり、JavaScriptで言うところのこの2つの処理
document.getElementById('test').addEventListener('mouseover', function() {実行させたい処理});
document.getElementById('test').addEventListener('mouseleave', function() {実行させたい処理});
を
$('#test').hover(function(){実行させたい処理1},function(){実行させたい処理2});
この1行で済ませているわけです。
ヤバくないですか!(語彙力のなさw
jQueryで要素にアニメーションを付ける
とは言っても何も難しい事はありません。
何故なら、全てメソッドとして用意されているからです。
すばらしい。
Effects | jQuery API Documentation
公式のアニメーション一覧です。
例えば要素をフワっと表示させたり、フワッと消したりしたい場合は
フワっと表示
$('#test').fadeIn();
フワっと非表示
$('#test').fadeOut();
これ、だけです。
自分で0から書こうとしたら、
CSSを操作するコードを結構書く必要がありそうなものですが、
たったこれだけで素敵な動きが付けられるなんて感動ですよね。
今日のまとめ
- イベントの監視やアニメーションも殆ど要素指定+メソッドで完結
- jQueryが使えるだけでも時間短縮に大きな貢献がある
ここまで学習してきて、JavaScriptもjQueryも色々な処理を書いていますが、HTMLの要素や属性とCSSを動的に変化させているだけなんですね。
それがページに動きをつけられるという意味と、今更理解したわけです。
では、また。