@@ -5,7 +5,7 @@ title: プロジェクト
55import Term from "@site/src /components/Term";
66import ViewSource from "@site/src /components/ViewSource";
77import ExternalVideoPlayer from "@site/src /components/ExternalVideoPlayer";
8- import calenderVideo from "./calender .mp4";
8+ import calendarVideo from "./calendar .mp4";
99
1010ここまでの知識を使って、今月分の予定管理アプリを作ってみましょう。
1111
@@ -16,20 +16,22 @@ import calenderVideo from "./calender.mp4";
1616- 編集中には消去ボタンが現れ、押すと予定を削除できる。
1717- 編集中に別の場所を押したりエンターキーを押したりすると予定が確定する(何も入力していない状態だと消える)
1818
19- <video src ={calenderVideo } controls loop autoPlay muted />
19+ <video src ={calendarVideo } controls loop autoPlay muted />
2020
2121## ヒント
2222
23- いきなり作るのが難しい場合はタスクを分解してみましょう。今回は大まかに<br />
24- ① カレンダーを作る<br />
25- ② カレンダーに機能をつける<br />
26- の2つの仕事があるので、まず ① からやっていきましょう。
23+ いきなり作るのが難しい場合はタスクを分解してみましょう。今回は大まかに
2724
28- ### ① について
25+ 1 . カレンダーを作る
26+ 2 . カレンダーに機能をつける
2927
30- - HTML 要素の作成は ` document.createElement ` 関数を使って行えます。また、 ` appendChild ` メソッドを用いることで要素内に子要素を追加することができます 。
28+ の2つの仕事があるので、まず 1 からやっていきましょう 。
3129
32- - 表を作るわけなので` table ` タグを使うのですが、日数を1から30前後までいちいち html ファイルに書き込んでいくのは手間ですし応用が効かないので、JavaScript ファイル上で繰り返しを使ってコードを簡潔にしましょう。もちろん今月の日数はカレンダーを見ればわかりますが、[ ` Date ` クラス] ( https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date ) を用いて月初めの日と月終わりの日を取ってこれば、計算をしなくても始まりの曜日や月の日数が取ってこれそうですね。
30+ ### 1 について
31+
32+ - HTML 要素の作成は ` document.createElement ` 関数を使って行えます。また、` appendChild ` メソッドを用いることで要素内に子要素を追加することができます。
33+
34+ - 表を作るわけなので ` table ` タグを使うのですが、日数を1から30前後までいちいち HTML ファイルに書き込んでいくのは手間ですし応用が効かないので、JavaScript ファイル上で繰り返しを使ってコードを簡潔にしましょう。もちろん今月の日数はカレンダーを見ればわかりますが、[ ` Date ` クラス] ( https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date ) を用いて月初めの日と月終わりの日を取ってこれば、計算をしなくても始まりの曜日や月の日数が取ってこれそうですね。
3335
3436``` javascript
3537const today = new Date ();
@@ -42,40 +44,40 @@ const endDate = new Date(year, month + 1, 0);
4244- 後で日付の下に予定を追加したり予定を編集したりしたいので、予定を書き込むための要素も作ったうえで、その要素を保存するオブジェクトを作っておきましょう。
4345
4446``` javascript
45- // 予定を書き込むための要素を格納するオブジェクト
47+ // 予定を書き込むための要素を格納するオブジェクト
4648const container = {};
47- // ここに予定を打ち込む要素を保存しておく
49+ // ここに予定を打ち込む要素を保存しておく
4850```
4951
50- ### ② について
52+ ### 2 について
5153
52- - 要素をクリックした時に実行される関数は要素の` onclick ` <Term type =" javascriptProperty " >プロパティ</Term >から設定することができます。
54+ - 要素をクリックした時に実行される関数は要素の ` onclick ` <Term type =" javascriptProperty " >プロパティ</Term >から設定することができます。
5355
54- - イベントが発生して関数が呼び出されると、一番目の引数に発生したイベントの情報が格納された ` Event ` オブジェクトが渡されてきます。` Event ` オブジェクトの` target ` <Term type =" javascriptProperty " >プロパティ</Term >を用いることで、クリックした要素を取得することができます。取得した要素の種類によって関数を変えることで、予定の編集や追加の機能を実現できます。
56+ - イベントが発生して関数が呼び出されると、一番目の引数に発生したイベントの情報が格納された ` Event ` オブジェクトが渡されてきます。` Event ` オブジェクトの ` target ` <Term type =" javascriptProperty " >プロパティ</Term >を用いることで、クリックした要素を取得することができます。取得した要素の種類によって関数を変えることで、予定の編集や追加の機能を実現できます。
5557
5658``` html title="index.html"
57- <div id =" div " >ここをクリック!</div >
59+ <button id =" button " >ここをクリック!</button >
5860```
5961
6062``` javascript title="script.js"
6163function clicked (e ) {
62- console . log (e .target .tagName );
64+ document . write (e .target .tagName );
6365}
6466
65- const div = document .getElementById (" div " );
67+ const div = document .getElementById (" button " );
6668
6769div .onclick = clicked;
6870```
6971
7072<ViewSource url ={import.meta.url} path =" _samples/event-target " />
7173
72- - グローバル変数の[ ` window ` ] ( https://developer.mozilla.org/ja/docs/Web/API/Window ) は、スクリプトを実行しているウィンドウそのものを表します。この変数も` onclick ` 要素を指定することができます。
74+ - グローバル変数の [ ` window ` ] ( https://developer.mozilla.org/ja/docs/Web/API/Window ) は、スクリプトを実行しているウィンドウそのものを表します。この変数も ` onclick ` 要素を指定することができます。
7375
74- - [ ` addEventListener ` メソッド] ( https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener ) は、ターゲットに特定のイベントが行われるたびに呼び出される関数を設定します。
76+ - [ ` addEventListener ` メソッド] ( https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener ) は、ターゲットに特定のイベントが行われるたびに呼び出される関数を設定します。
7577
7678``` javascript title="script.js"
7779function pressed () {
78- console . log (" キーを押しました" );
80+ document . write (" キーを押しました" );
7981}
8082
8183window .addEventListener (" keypress" , pressed);
@@ -87,4 +89,4 @@ window.addEventListener("keypress", pressed);
8789
8890解答例は次のリンクを参照してください。
8991
90- <ViewSource url ={import.meta.url} path =" _samples/calender " />
92+ <ViewSource url ={import.meta.url} path =" _samples/calendar " />
0 commit comments