More Related Content Similar to JavaScript Basic 01 Similar to JavaScript Basic 01 (20) More from Yossy Taka (12) JavaScript Basic 013. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 3
最近のWebサイト
• http://www.toclas.co.jp/
• http://adidasoriginals.tumblr.com/
• http://www.nikyniky.com/
• http://soppo.co/
• http://soniaby.com/en/looks
• http://www.talkative-jwl.jp/
• http://www.irobot-jp.com/roomba/800series/
• http://www.hadalabo.jp/shiroshizuku/
• http://www.nhk.or.jp/studiopark/
25. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 25
JavaScriptのポイント
• 要素(タグ)を指定して、下記作業を行う
– 要素の内容(文字)の変更
– 要素の属性値の変更
• alt属性、src属性、id属性 など
– 要素に設定されているCSS
• color、padding、margin など
26. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 26
JavaScriptのポイント
• ユーザ操作(イベント)を取得する
– 画像をクリックしたら
– 文字にマウスを重ねたら
– 重ねたマウスを外したら
27. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 27
今回の目標
• JavaScriptによるHTML・CSSの変更
– 要素の内容(文字)
– 要素に設定されているCSSの内容
• JavaScriptでユーザ操作を確認する
30. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 30
HTML5の場合
• HTMLファイルに直接記述
• 外部読み込み
<script>
JavaScriptのコードを記述
</script>
<script src=“ファイル名.js”></script>
31. Copyright Ⓒ Yoshihiro Takahashi 2012 All Rights Reserved. 31
JavaScript記述場所
• 要素(タグ)= DOM の構造を理解してから
JSを実行しないと誤動作する
– 要素の構造を理解してからJSを実行
• </body>の直前に記述する
• DOMContentLoadedを利用して実行
– 要素や画像ファイルなど全てを読み込んでから実行
• window.onloadを利用して実行
– jQueryのreadyメソッドを利用する
• 要素の構造を理解してから実行する
• DOMContentLoadedを利用している
32. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 32
簡単なJavaScript
• アラートの表示
<body>
<script>
console.log(‘こんにちは‘);
</script>
</body>
33. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 33
簡単なJavaScript
• コメント(メモ書き)の記述
<body>
<script>
// 一行のみのコメント
console.log(‘こんにちは‘);
/*
複数行のコメント
*/
</script>
</body>
40. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 40
idによる指定方法
• id名から要素を指定する方法
document.getElementById('id')
42. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 42
要素の文字を変更しよう
• idを指定して、要素内に文字を挿入
– 記述例
document.getElementById(‘id’).innerHTML = ‘文字’;
– 表示結果
<タグ id=‘id’>文字</タグ>
44. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 44
CSSの値を変更する
• CSSの変更
document.getElementById(‘id’).style.プロパティ = ‘値’;
• 記述例
document.getElementById(‘id’).style.color = ‘#d00’;
document.getElementById(‘id’).style.fontSize = ’20px’;
45. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 45
記述のポイント
• 選んだ要素を「オブジェクト」に入れて、使いま
わす
• 理由
– 処理を速くするため
var オブジェクト名 = document.getElementById(‘id’);
オブジェクト名.innerHTML = ‘文字’;
オブジェクト名.style.color = ‘#d00’;
46. 記述ミスの確認
• Google Chromeで確認ができる
– 右クリック→[要素を検証] → [Console] で、エラー
の確認ができるので、使い慣れてください。
– 正しく動かない場合には、まず上記操作を行なって
ください。
Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 46
47. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 47
課題
• JavaScriptで、さまざまなCSSの値を設
定してみてください。
49. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 49
CSSを変化させてアニメーション
• JavaScriptを利用してCSSの値を変化
させる
50. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 50
プログラミングのポイント
• 考え方の基本は、
【いつ】 + 【どこ/誰】 + 【どうする】
51. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 51
プログラミングのポイント
• 考え方の基本は、
【いつ】 + 【どこ/誰】 + 【どうする】
皆さん、来週 一緒にランチしましょう
52. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 52
皆さん、来週 一緒にランチしましょう
プログラミングのポイント
• 考え方の基本は、
【いつ】 + 【どこ/誰】 + 【どうする】
誰 いつ どうする
53. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 53
プログラミングのポイント
• 考え方の基本は、
【いつ】 + 【どこ/誰】 + 【どうする】
文字
54. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 54
プログラミングのポイント
• 考え方の基本は、
【いつ】 + 【どこ/誰】 + 【どうする】
文字 右に動け!!
55. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 55
プログラミングのポイント
• 考え方の基本は、
【いつ】 + 【どこ/誰】 + 【どうする】
文字 右に動け!!
56. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 56
プログラミングのポイント
• 【いつ】 + 【どこの/誰】 + 【どうする】
– 数ミリ秒間隔のタイミングで (いつ)
– ID名 (どこ/誰)
– CSSの内容を変化させる (どうする)
57. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 57
アニメーション
• 数ミリ秒間隔のタイミングで
– 指定した値のミリ秒間隔で連続で実行
– 「何か」を繰り返し実行し続けたい場合に利用
– 「setInterval」というイベントを使います。
• 設定方法
setInterval(function (){
繰り返しやりたい事;
}, ミリ秒);
58. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 58
アニメーション
• 右に移動する → margin-leftの値を増やす
• 記述例
文字margin-left
setInterval(function (){
A.style.marginLeft = ’10px’;
}, 30);
60. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 60
アニメーション
• この記述だと、10pxを何度も設定している
• 数値を定期的に変更する必要がある
1px→2px→3px→4px→5px・・・
setInterval(function (){
A.style.marginLeft = ’10px’;
}, 30);
63. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 63
変数について
• 変数とは
– 値を入れるための「入れ物」
– 値(数字など)を変化させたい場合に使用する
– 「 var 変数 」 で、変数の宣言(作成)
– 「 変数 = 値 」で、変数に値を代入
• 記述例
var 変数 = 値 ;
var 変数 = ‘文字’ ; // 文字はシングルクォート ‘’ で囲む
var 変数 = 値, 変数 = ‘文字’; // カンマ, で複数宣言
64. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 64
ポイント
= 値
代入
「=」は、代入という意味です。
「=」の左側は「入れ物」、「=」の右側は「値」となります
数学の X=Y とは違います
XとYが等しいというイメージを捨てましょう
入れ物
65. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 65
変数名のルール
• 使用できる文字は半角英字 数字 _ $のみ
• 先頭は半角英字 _ $のみ
• 半角英字の大文字・小文字は区別
– 例
• Abc と abc と abC は別の名前
• 3data はNG、data3 はOK
• $123 はOK、_abc はOK
66. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 66
値の変更
• 変数内の値の変更
変数 = 数字;
変数 = 変数 + 数字;
– 記述例
• 足し算 num = num + 1 ;
• 引き算 num = num − 1 ;
• かけ算 num = num * 1 ;
• 割算 num = num / 1 ;
67. 文字表示の特長
• 変数と文字の文字連結表示
– プラス(+)で連結する
– 文字は ‘ ’ で囲う
– ‘文字’ + 変数 + ‘文字’
• 記述例
var n = 1;
n = n + 1;
A.style.marginLeft = n + ‘px’;
Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 67
73. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 73
条件分岐(if文)
if (条件式1) {
実行したい処理;
}
else if (条件式2) {
実行したい処理;
}
else{
実行したい処理;
}
74. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 74
条件分岐(if文)
if (条件式1) {
実行したい処理;
}
else if (条件式2) {
実行したい処理;
}
else{
実行したい処理;
}
条件式1が成立したとき、
{ }の中を実行する
条件式1が成立せず、
条件式2が成立したとき、
{ }の中を実行する
条件式1と条件式2が
成立しないとき、{ }の
中を実行する
75. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 75
条件式の設定方法
• 比較演算子
A == B (等しい)
A > B (より大きい)
A < B (より小さい)
A >= B (以上)
A <= B (以下)
A != B (等しくない)
76. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 76
条件分岐(if文)
if (パソコンの価格 < 5万円) {
パソコンを購入;
}
else{//条件を満たしていないとき
お店から出る;
}
• 普段からifは使っています
78. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 78
ユーザ入力による制御
• マウスなどのユーザ操作(イベント)で
コンテンツを制御することが出来ます。
記述例
対象要素.addEventListener(ユーザ操作, function(e){
実行したい内容;
});
79. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 79
マウス操作
• 文字をクリックしたら、文字色を赤に変更
var ABC = document.getElementById(‘test’);
ABC.addEventListener(‘click’, function(e){
ABC.style.color = ‘#f00’;
});
80. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 80
マウス操作
• 以下のイベントから、命令を選ぶ
– click クリック
– dblclick ダブルクリック
– mouseout 要素上からマウスが離れた
– mouseover 要素上にマウスが乗った
– mousedown ボタン押した
– mouseup ボタンを離した
– mousemove マウスが動いた
81. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 81
マウス操作
• 下記のイベントの違いを確認しよう
– click クリック
– mousedown ボタン押した
– mouseup ボタンを離した
83. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 83
要素の属性を変更しよう
• 記述方法
オブジェクト.属性 = ‘値’;
• 記述例
オブジェクト.src = ‘abc.jpg’;
オブジェクト.title = ‘写真1’;
85. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 85
ギャラリー
• 写真サムネイルにマウスを重ねるとサム
ネイルが半透明になる
– 半透明 → opacity : 0.5;
– 透明 → opacity : 0;
– 不透明 → opacity : 1;
86. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 86
ギャラリー
• 写真サムネイルをクリックすると大きな
写真が変更
– id=‘img’の要素を指定し、src属性を変更する
<img id=“img” src="images/img001.jpg" />
<img id=“img” src="images/img002.jpg" />
89. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 89
function:処理をまとめる
• ユーザーが事前に設定できる、命令文です。
実行処理の再利用、一元管理するのに有効です。
関数は、「作ること」と「使うこと」は別になりますので、
勘違いしないよう気をつけてください。
function 関数名(引数1,引数2,・・){
実行したい処理;
・・・
return 戻り値;
}
91. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 91
これまでの応用
• 今までの仕組み
5番目のボタンを押すと、
5番目の写真に変わる
3番目のボタンを押すと、
3番目の写真に変わる
ボタンと写真の番号が
リンクしている
92. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 92
これまでの応用
• 今回の仕組み
NEXTボタンを押すと、
2番目の写真に変わる
NEXTボタンを押すと、
3番目の写真に変わる
NEXTボタンを押すと、
4番目の写真に変わる
ボタンと写真の番号が
リンクしていない
93. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 93
これまでの応用
• この考え方
– NEXTボタン押したら、数字だけ変えたい
<img id=“img” src="images/img001.jpg" />
<img id=“img” src="images/img002.jpg" />
<img id=“img” src="images/img003.jpg" />
96. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 96
これまでの応用
• 今回の仕組み NEXTボタンを押すと、
1番目の写真に変わる
2番目の写真に変わる
3番目の写真に変わる
4番目の写真に変わる
5番目の写真に変わる
1番目の写真に変わる
2番目の写真に変わる
番号が1増える
番号が1に変わる
番号が1増える
99. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 99
条件分岐(if文)
if (条件式1) {
実行したい処理;
}
else if (条件式2) {
実行したい処理;
}
else{
実行したい処理;
}
条件式1が成立したとき、
{ }の中を実行する
条件式1が成立せず、
条件式2が成立したとき、
{ }の中を実行する
条件式1と条件式2が
成立しないとき、{ }の
中を実行する
100. Copyright Ⓒ Yoshihiro Takahashi 2015 All Rights Reserved. 100
条件式の設定方法
• 比較演算子
A == B (等しい)
A > B (より大きい)
A < B (より小さい)
A >= B (以上)
A <= B (以下)
A != B (等しくない)