入門
第1回 jQueryでできること

普段HTMLやCSSを中心にソースコードを書いていて、JavaScriptなどのプログラムには触れたことのない人を主な対象に、jQueryを解説します。まずは、jQueryでなにができるのか概観してみましょう。

2012年07月19日発行

目次

jQueryでできること

このシリーズでは、普段HTMLやCSSを中心にソースコードを書いていて、JavaScriptなどのプログラムには触れたことのない人を主な対象にしています。

まずはjQueryがどんなことができるのか、簡単なサンプルでみてみましょう。

特定の要素にいろいろできる

ボタンをクリックするとidがhogeの要素に、赤い枠が付いたり、テキストが変わったり、要素が隠れたり、現れたりします。

<div id="hoge">sample</div>
$('#hoge').css('border','3px solid red');
$('#hoge').text('changed!');
$('#hoge').fadeToggle();
jQueryでできること
3つのボタンをクリックするとcssが変わったり、テキストが変わったり、div要素が開いたり閉じたりする(cssを元に戻したりテキストを元に戻したりはできない)。

プラグイン的な記述で機能を追加できる

あるいは以下のようなプラグインを指定する記述をするだけで、特定の機能を付与することもできます。

$('.rollover').rollover();

上記の記述でメニュ—のタブなどにロールオーバーの機能を付加します。

プラグインによるロールオーバー
カーソルをタブ上に合わせるとタブの画像が変わる。
$('.accordion').accordion();

折りたたみ式のメニューなどに使われるアコーディオンの機能を付加します。

プラグインによるアコーディオン
Itemをクリックするとその説明が下に現れます。別のItemをクリックすると、開いていた別Itemの説明は自動的に閉じます。各メニュー群の高さは変わらず伸び縮みします。
$('.slideshow').slideshow();

画像が一定の間隔で自動的に切り替わっていくスライドショーの機能を付加します。

プラグインによるスライドショー
一番左側は2枚の画像が切り替わり、真ん中は3枚、右側は4枚の画像が切り替わります。
$('.tooltip').tooltip();

特定の要素にカーソルを合わせると、ツールチップが表示される機能を付加します。

プラグインによるツールチップ表示
用語にカーソルを合わせると、その説明がツールチップとして表示されます。

jQueryを使うと以上のようにサイトでよく見かける便利な機能を、簡単な記述で実現することができます。プラグインについてはまた後で詳しく説明します。

jQueryの簡単な説明

さきほど見たデモでは実際なにを行っているかというと、ブラウザで解釈され表示されたHTMLをJavaScriptというプログラミング言語で操作しています。例えば、ある要素を表示したり、非表示にしたり、classを付け替えたりして、特定の機能を実現しています。これらの操作はすべてJavaScriptが行っています。

ところがJavaScriptでそれらのことを行うには、いろいろと面倒なことがあります。面倒なこと——その大部分を占めるのは、ブラウザごとの差に起因するものです。どのブラウザでも動くまともなものを作りたかったら、この面倒なステップを乗り越えなければなりません。

jQueryを使えば、これらのステップを、とても簡単な記述のコードで実現することができます。jQueryは、このように私達のコーディングをとても楽にしてくれる、JavaScriptのライブラリ*です。

*注:ライブラリ

ライブラリとは、プログラムをファイルにまとめたものです。jQueryはJavaScriptを書くときにいろいろと手間のかかることを、jQuery流の方法で手軽に行えるようにした機能群として提供します。jQueryのファイルを読み込むことで、jQueryが用意した機能を利用できるようになります。

jQueryの大まかな機能

jQueryの機能には以下のようなものがあります。

jQueryの主な機能
  • DOM(ドム):HTMLを操作する(もっとも重要な機能)
  • アニメーション:要素をアニメーションさせる
  • Ajax(エイジャックス):外部ファイルをダイナミックに読み込む
  • 便利な機能:その他にも便利な機能がたくさん

DOMはDocument Object Modelの略です。これは簡単にいうとHTMLを操作するための仕様で、W3Cが策定しています。jQueryはこの仕様にのっとった上で、要素を簡単に、柔軟に操作する方法を用意してくれています。

アニメーションは、今でこそCSS3でも実現できるようになってきましたが、古いブラウザでは当然利用できない機能です。jQueryはどのブラウザでも動く、昔ながらのJavaScriptの機能であるタイマーを駆使したアニメーションを、手軽に行う方法を用意してくれています。

Ajaxは、外部のファイルをダイナミックに読み込む機能です。これを使えば、1つのページの内容を、次々に新しいコンテンツで置き換えることができます。Google Maps、Gmail、Twitterなどを思い浮かべてください。それらは、別のページに移動することなく、次々と外部のファイルを読み込み、ページの内容をダイナミックに切り替えます。これらはすべて、Ajaxを使った実装がなされています。Ajaxとは、このように「外部のファイルを動的に読み込むテクニック」のことを指します。jQueryを使えば、これを非常に簡単に行うことができます。

その他にも便利がたくさんあります。

jQuery、どこまで使いこなす?

ここまででjQueryってよくわからないけれど、つまり日頃みている「あれら」を実現するもの、という大づかみな理解はしてもらえたと思います。

このシリーズを読んでいる方は、漠然とjQueryがどんなものかを知りたいと思っている方から、実際に作ってみたいものがあるという方までさまざまだと思います。

JavaScriptの会社と自称しているピクセルグリッドのエンジニアの経験からいうと、○○を作りたい→実際にチャレンジしてみる、という過程を経ないとなかなか身に付きません。

そこでjQueryの使いこなしを1〜4までレベル分けしてみました。簡単な使いこなしから難しい使いこなしまでありますが、自分がどのレベルを目標にしているのか考えつつ、読み進めてもらえればと思います。

「JavaScriptができる/できない」という視点で考えると、1か0かのような考えになってしまいそうですが、実際はそういうわけではありません。実現したいことにより、必要とされるスキルもかなり違いますので、そのような点をざっくりと把握してください。

レベル1(簡単):プラグインを使える

これはjQueryのもっとも簡単な使いこなしです。

  1. プラグインをダウンロードする
  2. スクリプトやCSSを読み込む記述をする
  3. 目的の要素に適用するためのjQueryを1、2行書く

上記のような手順を踏めばいいので、HTMLやCSSを日常的に書いている人なら、目的のプラグインを見つけることができれば、ほぼ確実に実装することができます。

以下は「ColorBox」(http://jacklmoore.com/colorbox/)というブラグインを使用した例です。このプラグインはライトボックスの機能を付与することができます。

<a href="dog.jpg" class="colorbox">dog</a>
$('.colorbox').colorbox();
colorboxプラグインによるライトボックス
dogをクリックすると画像がライトボックスのギミックで現れます。

しかし簡単である一方、既製のプラグインを元にしてもう少し効果を変えたい、となると「それは無理」というのがレベル1です。

レベル2(がんばる):簡単な機能を作れる

さきほど「プラグイン的な記述で機能を追加できる」でプラグインの使用例を紹介しましたが、レベル2はこのような機能を「使う」ではなく「作る」レベルです。ロールオーバー、スライドショー、アコーディオン、ツールチップなどシンプルな機能を持つプラグインが作れるレベルです。

レベル3(難しい):複雑な機能を作れる

レベル2とレベル3はそんなに明確には分けられないのですが、レベル3は同じ機能でも、細かい演出がほどこされているようなものです。

これらはDOM操作やCSS、アニメーションを駆使して作ることが多く、実装には試行錯誤が必要とされることが多いです。

さきほど紹介した「ColorBox」は画像がフェードインするように現われます。デザイン性の高いUI「Lof JSliderNews」などがその例です。

スタイルやアニメを巧みに使ったUI、たくさんの要素が関係するUI、またユーザー側で簡単に細かな設定ができるものや、別の機能と連携可能など付加的な機能があるものは書くのが難しいといえます。

レベル4(かなり難しい):APIと連携しつつ複雑なUI処理を制御

このレベルは私たちが「Webアプリケーション」と呼んでいるものを作れるレベルです。例えばGmail、Googleカレンダーなどをイメージしてください。

Gmailにアクセスするとページ遷移をすることなく、メールを読んだり、ラベルを付けたりという操作ができます。

これらはブラウザがサーバーの用意したAPIと連携しながら、サーバー上のデータを取ってきたり、ローカルでの複雑なUIの処理をコントロールしています。

レベル3では複雑とはいえ単独の機能を実現すればよかったのですが、レベル4になると、複数の機能が連携を取り合い、さらにサーバーとのやり取りも発生します。サーバー側のデータ設計をどうするかなども考えねばなりません。

どのレベルまで使いこなしたいか

大まかに4段階のレベルに分けてみましたが、jQueryを始めるにあたって自分がどのレベルまで到達したいのか、あるいは仕事で要求されるのはどのレベルの話なのかを念頭においておくといいでしょう。

このシリーズでは次回以降紹介・解説する内容は、HTMLとCSSの基本的な知識がある人が、まずはレベル2の入り口に到達することを目的としています。

高津戸 壮
高津戸 壮
フロントエンド・エンジニア

Web制作会社、フリーランスを経て、株式会社ピクセルグリッドに入社。数多くのWebサイト、WebアプリケーションのHTML、CSS、JavaScript実装に携わってきた。受託案件を中心にフロント周りの実装、設計、テクニカルディレクションを行う。スケーラビリティを考慮したHTMLテンプレート設計・実装、JavaScriptを使った込み入ったUIの設計・実装を得意分野とする。 著書に『改訂版 Webデザイナーのための jQuery入門』(技術評論社、2014年11月14日)がある。 CSS Nite 2011ベストセッションにおいて、全170セッションの中から、ベスト10セッションに、CSS Nite 2013ベストセッションでは、全278セッション中、ベスト20セッションに選出。

外村 奈津子
外村 奈津子
エディター

情報出版社に在籍中、Mac雑誌、中高年向けフリーペーパー、コラムサイト運営、健康食雑誌、グラフィック・Web技術書籍編集、IT系ニュースサイトの編集記者を経験。その後フリーランスのエディター/ライターとして独立。2011年4月より株式会社ピクセルグリッドへ入社。ピクセルグリッドが提供するフロントエンド技術情報を提供するサービス「CodeGrid」の編集を担当している。