- 前ページ
- 次ページ
クリスマスに使いたい!雪のパーティクルをチラチラ降らす JavaScript を作ってみよー
http://actyway.com/7801
http://actyway.com/7801
私なりに、まとめてみました。
みんなが使っているから
基本的な機能が用意されている(クロスブラウザ・Ajaxなど)クロスブラウザ
クロスブラウザとは
Ajax
jQueryに限らず、フリーで使えるものや便利なツールを選ぶときには、これが一番重要だったりします。
「みんな」というのは、それぞれ定義が違うと思いますが、「日本人」と置いてみると、日本語マニュアルが充実しています。その他にも、実用例や情報が豊富にあるため、何か困ったことがあっても、調べれば答えがどこかに落ちています。
また、使われなければ、更新する人も更新しなくなります。そうすると、最新のものとは合わなくなってきてしまい、他のものに乗り換えないといけません。そうなると、とても大変です。
「みんな」に使われているものであれば、日々更新され、ずっと使うことができます。
見やすい
ネイティブコードで書く場合
document.getElementById("test").innerHTML = "hello world!";
jQueryで書く場合
$("#test").text("hello world!");
ぱっと見で何しているのかわかるくらい、わかりやすくなります。
また、jQueryのセレクタは、cssのセレクタと共通のものも多いので、デザイナーさんにも優しいです。
短い
とても短くなります。
例えば、以下の2つのコードは、同じ処理をしているものです。
var targets = document.getElementsByTagName("p");
for(i=0; targets.length; i++){
if(targets[i].className === "warning"){
targets[i].style.color = "red";
}
}
$("p.warning").css( "color", "red" );
後述する、クロスブラウザの対応などを含めると、もっと長いコードが、1行になることもあります。
基本的な機能が用意されている(クロスブラウザ・Ajaxなど)
ネイティブコードだけで書く場合、クロスブラウザを意識しなければなりません。
しかし、jQueryは意識することなく、書くことができます。
WebサイトやWebアプリケーションが、どのWebブラウザでも同じ表示、同じ動作を再現できる状態のこと。
ブラウザごとに、サポートしているものとサポートしていないものがあったり、解釈が違ったりするため、特定のブラウザではレイアウトが崩れてしまったり、思い通りにいかないことがある。
それに対応したHTML,CSS,JavaScriptのことをいう。
例えば、`document.getElementsByClassName`というメソッドは、IE8以下では、サポートされていない。
jQueryを使うことによって、Ajaxのコードは、かなり簡易に書くことができます。
また、ネットワークを介する呼び出しのため、煩雑になりがちなエラーをスマートに処理できます。
Ajaxとは
Webブラウザに実装されているJavaScriptのHTTP通信機能を使って、Webページのリロードを伴わずにサーバとXML形式のデータのやり取りを行って処理を進めていく対話型Webアプリケーションの実装形態のこと。
つまり、ページ全体を読み込む(ページ遷移する)のではなく、指定された部分だけデータを読み込み、更新する。
例えば、GoogleMapsは、地図の部分は、スクロールやドラッグにより、画面に表示されていない部分のデータを読み込んでいるが、周りのメニューなどは、リロードされない。
プラグインが豊富
前述した、みんなが使っているから、というのが、まさにここに表れてきます。
みんなが使っているからこそ、様々な、豊富な数のプラグインがあります。
さらに、みんながよく使っているプラグインは、jQueryのバージョンが上がっても、プラグインも更新されていくことが多いです。
検索してみると、様々なオススメ・まとめのページがたくさん出てくるでしょう。
様々なものを簡単に実装することができます。
プラグインとは
jQueryの拡張機能のこと。
例えば、スライダーやライトボックスなどが、1行で書けるようになる。
さまざまな種類があり、また、カスタマイズや自作も可能である。
hasClass
これは、
<div class="hoge"></div>
$('div').hasClass('hoge');
のように、そのタグにclassがついているかどうかを判定する。
例えば、こんなときに使える。
<div class="hoge"></div>
<div></div>
<div class="hoge"></div>
<div></div>
<div></div>
$('div').click(function(){
if($(this).hasClass('hoge')){
$(this).css('color','red');
}
});
クリックしたとき、hogeというclassがついていたら、文字色を赤くする。
など。
これでは、classが存在するかどうか、で判定する場合には使えない。
$('.hoge').length;
これで、hogeというclassが存在しているかどうかを判定することができる。
if($('.hoge').length;){
$('body').css('background','blue');
}
これで、hogeというclassが存在していたら、背景色を青にする。
これは、
<div class="hoge"></div>
$('div').hasClass('hoge');
のように、そのタグにclassがついているかどうかを判定する。
例えば、こんなときに使える。
<div class="hoge"></div>
<div></div>
<div class="hoge"></div>
<div></div>
<div></div>
$('div').click(function(){
if($(this).hasClass('hoge')){
$(this).css('color','red');
}
});
クリックしたとき、hogeというclassがついていたら、文字色を赤くする。
など。
これでは、classが存在するかどうか、で判定する場合には使えない。
$('.hoge').length;
これで、hogeというclassが存在しているかどうかを判定することができる。
if($('.hoge').length;){
$('body').css('background','blue');
}
これで、hogeというclassが存在していたら、背景色を青にする。