More Related Content
Similar to メディア芸術基礎 II jQuery入門
Similar to メディア芸術基礎 II jQuery入門 (20)
More from Atsushi Tadokoro
More from Atsushi Tadokoro (20)
メディア芸術基礎 II jQuery入門
- 12. jQuery ≠ HTML5
‣ jQuery は HTML5 ではない
‣ しかし、jQueryでHTML5の要素(Canvasなどの画像データも含
めて)操作することも可能
‣ jQueryは、HTML5も含んだより広範な環境
HTML5 jQuery
- 16. jQuery 環境設定
‣ まずは、ベースとなるHTML書類を用意する
‣ 今回はHTML5形式のテンプレートをベースにします
<!DOCTYPE html>
<html>
! <head>
! ! <meta charset="utf-8" />
! ! <title>jQueryのテスト</title>
! </head>
! <body>
! ! <h1>jQueryのテスト</h1>
! </body>
</html>
- 18. jQuery 環境設定
‣ jQueryの環境を読み込む
‣ jQueryのCDNとして、Google Library API を使用
‣ http://code.google.com/intl/ja/apis/libraries/
‣ バージョンとロードするライブラリの種類を指定すると、自動
的に最適なファイルにリンクしてくれる
‣ Version 1の中の最新のjQueryをロードする場合
‣ HTMLファイルの、head要素内に書きこむ
<script src="http://www.google.com/jsapi"></script>
<script>google.load("jquery", "1");</script>
- 19. jQuery 環境設定
‣ head要素内に、jQueryをGoogleのCDNから読み込む
<!DOCTYPE html>
<html>
! <head>
! ! <meta charset="utf-8" />
! ! <title>jQueryのテスト</title>
! ! <script src="http://www.google.com/jsapi"></script>
! ! <script>google.load("jquery", "1");</script>
! </head>
! <body>
! ! <h1>jQueryのテスト</h1>
! </body>
</html>
- 21. jQuery 環境設定
‣ 確認用のコードを記入
<!DOCTYPE html>
<html>
! <head>
! ! <meta charset="utf-8" />
! ! <title>jQueryのテスト</title>
! ! <script src="http://www.google.com/jsapi"></script>
! ! <script>google.load("jquery", "1");</script>
! ! <script>
! ! ! $(function() {
! ! ! $("h1").fadeOut(3000);
! ! ! });
! ! </script>
! </head>
! <body>
! ! <h1>jQueryのテスト</h1>
! </body>
</html>
- 29. jQuery の基本文法
‣ 処理の内容を記述 (メソッド)
‣ この例の場合は、3000ミリ秒 (= 3秒) かけてフェードアウト
<script>
$(function() {
$("h1").fadeOut(3000);
});
</script>
- 30. jQuery の基本文法
‣ 「 . 」(ドット) でつないで、メソッドを連結可能
‣ メソッドチェーン
<script>
$(function() {
$("h1").fadeOut(3000)
.fadeIn(3000);
});
</script>
- 34. いろいろなメソッド(命令)
‣ アニメーション
‣ CSSの数値化できる属性であればアニメーションできる
‣ たとえば、marginを操作して、位置を動かしてみる
//上の余白を500pxに → つまり下に500px移動
$("h1").animate({marginTop:"500px"}, 500);
//下に500px移動して、1000ms静止して、また上に戻る
$("h1").animate({marginTop:"500px"}, 500)
.delay(1000)
.animate({marginTop:"0px"}, 200);
- 36. いろいろなメソッド(命令)
‣ アニメーション
‣ 注意!! 数値化できない値(色など)はアニメーションできない
$(function() {
//このコードはNG、色をアニメーションできない
$("h1").animate({
color:"white",
backgroundColor:"blue"
}, 500));
});
- 51. イベント - クリックした画像を隠す
‣ 「画像をクリックしたら、画像を隠す」というプログラムを作
成してみたい
‣ jQueryでの考え方
‣ 「画像をクリックしたら」→ イベント
‣ 「画像を隠す」→ 命令
- 52. イベント - クリックした画像を隠す
‣ ただし、実際には、HTML書類が全て読みこまれてからでない
と、「クリックしたら」を実現できない
‣ 下記のように考える
‣ 1.「書類が全て読み込まれたら、次の命令を実行」
‣ 2.「 画像をクリックしたら、画像を隠す」
‣ この2つのイベントをまずはjQueryで記述してみる
- 54. イベント - クリックした画像を隠す
‣ さらに追記
‣ img要素をクリックしたら、命令を実行 (イベント)
$(function(){
$("img").click(function(){
});
});
- 55. イベント - クリックした画像を隠す
‣ さらに、さらに追記
‣ img要素を隠す (命令)
$(function(){
$("img").click(function(){
$("img").hide();
});
});
- 57. イベント - クリックした画像をフェードアウト
‣ 単純に消えるだけでなく、エフェクトをかけることも可能
‣ 例:クリックすると1秒(1000msec)かけてフェードアウト
$(function(){
$("img").click(function(){
$("img").fadeOut(1000);
});
});
- 58. イベント - クリックした画像をフェードアウト
‣ イベントを適用した要素自身のセレクタは、$(this)と書き換え
ることもできる
$(function(){
$("img").click(function(){
$(this).fadeOut(1000);
});
});
- 59. イベント - クリックした画像をフェードアウト
‣ HTML側を変更
‣ 複数の画像ファイルを並べて貼りつけてみる
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jQueryのテスト</title>
<script src="http://www.google.com/jsapi"></script>
<script>google.load("jquery", "1");</script>
<script src="script.js"></script>
</head>
<body>
<img src="test1.jpg" alt="画像1" /><br />
<img src="test2.jpg" alt="画像2" /><br />
<img src="test3.jpg" alt="画像3" /><br />
<img src="test4.jpg" alt="画像4" />
</body>
</html>
- 62. イベント - 画像を入れかえる
‣ HTMLファイルを再度修正、画像を1枚だけに
‣ a要素(リンク)を、写真の枚数分用意する
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jQueryのテスト</title>
<script src="http://www.google.com/jsapi"></script>
<script>google.load("jquery", "1");</script>
<script src="script.js"></script>
</head>
<body>
<nav>
<ul>
<li><a href="#">写真 1</a></li>
<li><a href="#">写真 2</a></li>
<li><a href="#">写真 3</a></li>
<li><a href="#">写真 4</a></li>
</ul>
</nav>
<img src="test1.jpg" alt="画像1" /><br />
</body>
</html>
- 64. イベント - 画像を入れかえる
‣ script.jsを編集
$(function(){
$("a:eq(0)").click(function(){
$("img").attr("src","test1.jpg");
});
$("a:eq(1)").click(function(){
$("img").attr("src","test2.jpg");
});
$("a:eq(2)").click(function(){
$("img").attr("src","test3.jpg");
});
$("a:eq(3)").click(function(){
$("img").attr("src","test4.jpg");
});
});