×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
JavaScript Lab JavaScript Lab Ryan Chung 1
Slide 2
Slide 2 text
JavaScript Lab Lab Index • Hello JavaScript! – 環境安裝、套件安裝、專案基本構成 • 今天晚上吃什麼 – 亂數選擇器 – HTML/CSS/JS、jQuery、亂數 • 自動排課系統 – 表格、陣列、日期時間、函數、迴圈、字串、樣式 • 心理測驗 – 你的愛情是什麼滋味? – 條件判斷、按鈕、資料取得、陣列、字典 • RPG極簡雛形製作 – Canvas、圖型載入、For..in、事件、Switch • Youtube心情點唱機 – Youtube iFrame API、div、id、物件 • 網頁整合 – Bootstrap、超連結、選單、jQuery選擇器 • 網站上線 – GitHub Pages、Git 2
Slide 3
Slide 3 text
JavaScript Lab 開發環境 http://brackets.io/ 3
Slide 4
Slide 4 text
JavaScript Lab 安裝擴充套件 HTML Templates • File -> Extension Manager... –HTML Templates 4
Slide 5
Slide 5 text
JavaScript Lab 第一個 JS專案 • 在電腦中新增一個資料夾:HelloJavaScript • 打開Brackets, File -> Open Folder... • 選擇剛才建立的資料夾 5
Slide 6
Slide 6 text
JavaScript Lab 第一個 JS專案 • 在左邊點擊右鍵,New File,命名為index.html • Edit -> HTML Templates... -> 第一個Choose... • 選擇HTML5 6
Slide 7
Slide 7 text
JavaScript Lab 第一個 JS專案 • 在左邊點擊右鍵,New File,再增加三個檔案 – main.js – style.css – package.json 7
Slide 8
Slide 8 text
JavaScript Lab 第一個 JS專案 • 回到index.html,編輯檔案如下 8
Slide 9
Slide 9 text
JavaScript Lab 第一個 JS專案 • 再到main.js,編輯檔案如下 • package.json,編輯檔案如下 9
Slide 10
Slide 10 text
JavaScript Lab 測試執行 • 回到index.html,按下編輯器最右方的閃電符號 10
Slide 11
Slide 11 text
JavaScript Lab JavaScript Lab 今天晚上吃什麼 – 亂數選擇器 11
Slide 12
Slide 12 text
JavaScript Lab 預期畫面 12
Slide 13
Slide 13 text
JavaScript Lab 功能 • 點擊按鈕後,從下列選項中任意挑選一個並 顯示 • 按下按鈕後的動作 • 取得清單中的文字 • 任意選擇一個項目 13
Slide 14
Slide 14 text
JavaScript Lab 畫面的拆解 • 標題 • 置中 • 按鈕 • 置中 • 選項清單 • 靠左 14
Slide 15
Slide 15 text
JavaScript Lab 基本畫面元素 • 如何產生標題? • 如何決定標題上的文字? • 如何產生按鈕? • 如何決定按鈕上的文字? • 如何產生清單? • 如何撰寫清單上的項目? 15
Slide 16
Slide 16 text
JavaScript Lab 畫面編排 • 如何讓標題與按鈕置中? • 如何讓選單靠左? 16
Slide 17
Slide 17 text
JavaScript Lab 功能拆解 • 如何讓按鈕按下之後有所動作? • 如何取得清單中的文字? • 如何任意挑選其中一個項目? • 如何改變標題的文字? 17
Slide 18
Slide 18 text
JavaScript Lab 建立專案 • 複製上一個例子的資料夾,重新命名:RandomSelector • 打開Brackets, File -> Open Folder... • 選擇RandomSelector資料夾 18
Slide 19
Slide 19 text
JavaScript Lab 先放置畫面內容 19
Slide 20
Slide 20 text
JavaScript Lab 修改 main.js 20
Slide 21
Slide 21 text
JavaScript Lab 結果不正 21
Slide 22
Slide 22 text
JavaScript Lab 修改 style.css 22
Slide 23
Slide 23 text
JavaScript Lab 選項跑到中間,但是符號還在旁邊 23
Slide 24
Slide 24 text
JavaScript Lab 再修正 style.css 24
Slide 25
Slide 25 text
JavaScript Lab index.html 匯入 jQuery 25
Slide 26
Slide 26 text
JavaScript Lab main.js 按鈕按了有反應 26
Slide 27
Slide 27 text
JavaScript Lab main.js 按鈕按了可以改變那個問號 27
Slide 28
Slide 28 text
JavaScript Lab main.js 按鈕按了可以拿到任一筆資料 28
Slide 29
Slide 29 text
JavaScript Lab main.js • 先計算li元件有幾個 • 產生對應的亂數範圍 • 使用這個亂數 29
Slide 30
Slide 30 text
JavaScript Lab Recap • 開發/測試環境 • HTML / CSS / JavaScript • jQuery • 亂數 30
Slide 31
Slide 31 text
JavaScript Lab 延伸 Lab • 在下方加上圖片,當選到特定項目時,下方也 能出現對應的圖片 31
Slide 32
Slide 32 text
JavaScript Lab JavaScript Lab 自動排課系統 Ryan Chung
[email protected]
32
Slide 33
Slide 33 text
JavaScript Lab 社團活動公告網頁 • 小明是資訊社的社長,在每週三的晚上會舉辦 社課,想要做一個網頁來公告社團活動 • 自動產生活動場次號碼、舉辦日期 • 方便維護每次的活動主題 33
Slide 34
Slide 34 text
JavaScript Lab 預期畫面 34
Slide 35
Slide 35 text
JavaScript Lab 功能 • 社長方便維護 • 只要輸入開始日期,就可以自動推算每次活動日 期 • 只要將每個場次活動內容輸入,就可以自動編號 35
Slide 36
Slide 36 text
JavaScript Lab 檔案 • index.html:主要顯示頁面 • main.js:主要程式運作 • package.json:專案設定檔 • style.css:網頁樣式檔 • topic.js:存放資料 36
Slide 37
Slide 37 text
JavaScript Lab index.html 畫面 • 匯入 topic.js、main.js • 建立標題、表格(表格設定id) 37
Slide 38
Slide 38 text
JavaScript Lab topic.js 資料 • 建立一個陣列來存放資料 38
Slide 39
Slide 39 text
JavaScript Lab topic.js 資料 • 建立方便輸入日期的機制 39
Slide 40
Slide 40 text
JavaScript Lab package.json • 讓window物件直接在各個js檔可以使用 40
Slide 41
Slide 41 text
JavaScript Lab topic.js 資料 • 日期時間物件 –如何建立 –如何設定 –setMonth的輸入值 –setDate是什麼 • 函數的建立與呼叫 –函數的關鍵字 –如何建立、輸入輸出 –如何呼叫 41
Slide 42
Slide 42 text
JavaScript Lab main.js • 新增表格的標題內容 42
Slide 43
Slide 43 text
JavaScript Lab main.js • 表格的語法 –最外層 –標題 –列、資料欄位 43
Slide 44
Slide 44 text
JavaScript Lab main.js • 將資料呈現於表格中,並顯示場次編號 44
Slide 45
Slide 45 text
JavaScript Lab main.js • for 迴圈的使用 • 如何對應資料? • 編號從幾開始? 45
Slide 46
Slide 46 text
JavaScript Lab main.js 開始處理活動日期 • 先確認startDate是否可正確取得 46
Slide 47
Slide 47 text
JavaScript Lab 活動日期概念 • 確定了第一週的日期後 • 每週就是前一個活動日期的七天後 47
Slide 48
Slide 48 text
JavaScript Lab 出現的卻是... 48
Slide 49
Slide 49 text
JavaScript Lab 資料型態 • 字串 • 日期 • 數字 • ... 不同的資料型態可不可以相加? 如何知道每個變數的資料型態? 49
Slide 50
Slide 50 text
JavaScript Lab 時間運算 • 先將時間轉換成累積毫秒,運算完成後再轉回 一般日期時間格式 50
Slide 51
Slide 51 text
JavaScript Lab 日期時間物件 • getTime() • 為什麼要計算一天的毫秒量 • toLocaleDateString() 51
Slide 52
Slide 52 text
JavaScript Lab main.js 不想看到年份 52
Slide 53
Slide 53 text
JavaScript Lab style.css 畫面呈現優化 53
Slide 54
Slide 54 text
JavaScript Lab 總算完成! 54
Slide 55
Slide 55 text
JavaScript Lab 嘗試在topic.js增加資料 • 畫面是否也能自動更新 55
Slide 56
Slide 56 text
JavaScript Lab 若在topic.js更改第一次活動日期 • 畫面是否也能自動更新 56
Slide 57
Slide 57 text
JavaScript Lab Recap • HTML –表格、id • JavaScript –多個檔案執行 –陣列、日期時間、函數、迴圈、字串處理 • CSS –置中對齊、邊界 –字體大小、邊框 57
Slide 58
Slide 58 text
JavaScript Lab Lab • 如果要讓停課的那幾天字變灰色,該怎麼做? –條件判斷 • 能不能在網頁上讓使用者設定第一天的日期? –日期輸入元件 –事件發生 58
Slide 59
Slide 59 text
JavaScript Lab JavaScript Lab 心理測驗-你的愛情是什麼滋味? Ryan Chung
[email protected]
59
Slide 60
Slide 60 text
JavaScript Lab 需求 • 想要將網路上的心理測驗文字轉換成互動模式 • 使用者只要逐題作答就可以得到結果 60 Source:https://www.xcnnews.com/xz/2707643.html
Slide 61
Slide 61 text
JavaScript Lab 預期成果 • 每頁顯示一題目,使用者選擇後按下按鈕 • 最後會出現結果,並可重新開始作答 • 按鈕會依情境改變:開始、下一題、重新開始 61
Slide 62
Slide 62 text
JavaScript Lab 檔案 • index.html:主要顯示頁面 • main.js:主要程式運作 • package.json:專案設定檔 • style.css:網頁樣式檔 • data.js:存放資料 62
Slide 63
Slide 63 text
JavaScript Lab index.html 畫面 • 匯入 data.js、main.js • 建立標題、問題與選項區塊、選項區塊、按鈕 63
Slide 64
Slide 64 text
JavaScript Lab data.js • 直接下載使用 64 https://github.com/ryan403/love-taste-quiz/
Slide 65
Slide 65 text
JavaScript Lab 觀察data.js • 與原始心理測驗內容比對 • 了解 { }、[ ] 的用法 • Dictionary { } –Key-value Pair • Array [ ] –有順序性 65
Slide 66
Slide 66 text
JavaScript Lab package.json • 讓window物件直接在各個js檔可以使用 66
Slide 67
Slide 67 text
JavaScript Lab style.css 畫面呈現優化 67
Slide 68
Slide 68 text
JavaScript Lab main.js • 建立變數、建立按鈕事件處理 68
Slide 69
Slide 69 text
JavaScript Lab main.js • 兵分兩路,開始作答或繼續作答 • 想想一開始作答跟其他題的作答有什麼不一樣? • 畫面上只有一顆按鈕 69
Slide 70
Slide 70 text
JavaScript Lab main.js 第一題的顯示 70
Slide 71
Slide 71 text
JavaScript Lab main.js - else • 檢查哪一個選項被使用者選取 71
Slide 72
Slide 72 text
JavaScript Lab main.js - else • 是要往下一題顯示還是通往結果 72
Slide 73
Slide 73 text
JavaScript Lab main.js – 通往最終結果 • 顯示結果標題、結果詳細內容 73
Slide 74
Slide 74 text
JavaScript Lab main.js – 顯示下一題 • 注意題號 74
Slide 75
Slide 75 text
JavaScript Lab 總算完成! 75
Slide 76
Slide 76 text
JavaScript Lab Recap • HTML –div、h2、radio、label、button、checked • JavaScript –if...else –==、null • jQuery –:radio、empty()、attr()、each() –return false • 資料檔案 –陣列、字典、第x個、多層存取 76
Slide 77
Slide 77 text
JavaScript Lab Lab • PDP性格測驗 77
Slide 78
Slide 78 text
JavaScript Lab JavaScript Lab RPG極簡雛形製作 Ryan Chung
[email protected]
78
Slide 79
Slide 79 text
JavaScript Lab 需求 • 做一個九宮格可以移動的遊戲雛形 • 可以移動主角,但不會走出範圍 • 可以判斷遇到人、障礙物 • 可以判斷走到終點 • 主角的圖案跟方向一致 79
Slide 80
Slide 80 text
JavaScript Lab 檔案 • index.html:主要顯示頁面 • main.js:主要程式運作 • package.json:專案設定檔 • style.css:網頁樣式檔 • images:存放圖片的資料夾 (https://ppt.cc/fN2Eox) 80
Slide 81
Slide 81 text
JavaScript Lab package.json • 讓window物件直接在各個js檔可以使用 81
Slide 82
Slide 82 text
JavaScript Lab index.html • 標題、canvas、div、p 82
Slide 83
Slide 83 text
JavaScript Lab style.css 83
Slide 84
Slide 84 text
JavaScript Lab main.js • 全域變數宣告、事件觸發 84
Slide 85
Slide 85 text
JavaScript Lab main.js • 設定地形、擺上主角 85
Slide 86
Slide 86 text
JavaScript Lab main.js • 擺上障礙物、敵人 86
Slide 87
Slide 87 text
JavaScript Lab 編號與座標的對應 0 1 2 3 4 5 6 7 8 (0,0) (200,0) (400,0) (0,200) (0,400) (200,200) (200,400) (400,200) (400,400) 87
Slide 88
Slide 88 text
JavaScript Lab main.js • 按鍵判斷 • 座標設定 • 排除其他狀況 88
Slide 89
Slide 89 text
JavaScript Lab main.js • 判斷目標位置是否在邊界內 • 判斷目標位置是否有障礙物/敵人 89
Slide 90
Slide 90 text
JavaScript Lab main.js • 依據目標位置內容,顯示提示訊息於下方 90
Slide 91
Slide 91 text
JavaScript Lab 總算完成!進行測試 • 主角是否會走出邊界? • 是否遇到障礙物、敵人會無法走,並出現訊息 • 是否有判斷抵達終點? • 是否有依方向轉頭? 91
Slide 92
Slide 92 text
JavaScript Lab Recap • HTML –canvas、div、id • JavaScript –image load、canvas draw image、cut image –for ... in、array、switch –keydown、preventDefault • 資料檔案 –圖片 92
Slide 93
Slide 93 text
JavaScript Lab Lab • 可以16 x 16嗎? • 一個物品可以跨越多格嗎? • 如何寫出小精靈? • 如何寫出OOXX遊戲? 93
Slide 94
Slide 94 text
JavaScript Lab JavaScript Lab Youtube心情點唱機 Ryan Chung
[email protected]
94
Slide 95
Slide 95 text
JavaScript Lab 想要解決的問題 • MTV Video前面故事很長,只想聽副歌 • 希望可以串起來播放 • 可以方便設定每首歌的播放開始與結束時間 • 畫面總是充滿著置入行銷連結 • 不想結束時看到一堆相關影片 95
Slide 96
Slide 96 text
JavaScript Lab 不想看到最上面的標題 96
Slide 97
Slide 97 text
JavaScript Lab 每次影片結束時都會有一堆相關影片 97
Slide 98
Slide 98 text
JavaScript Lab 影片播放時常有置入行銷連結 98
Slide 99
Slide 99 text
JavaScript Lab 預期畫面 • 按下按鈕開始播放,並顯示歌曲標題 • 播完一首會接著播下一首 • 都只播設定好的副歌段落 99
Slide 100
Slide 100 text
JavaScript Lab 檔案 • index.html:主要顯示頁面 • main.js:主要程式運作 • package.json:專案設定檔 • style.css:網頁樣式檔 • playList.js:影片來源與播放起訖時間 100
Slide 101
Slide 101 text
JavaScript Lab index.html • iframe_api、playList.js、h1、div、button 101
Slide 102
Slide 102 text
JavaScript Lab package.json • 讓window物件直接在各個js檔可以使用 102
Slide 103
Slide 103 text
JavaScript Lab style.css 103
Slide 104
Slide 104 text
JavaScript Lab playList.js 104
Slide 105
Slide 105 text
JavaScript Lab main.js 105
Slide 106
Slide 106 text
JavaScript Lab 當Youtube API準備好時,設定播放器 106
Slide 107
Slide 107 text
JavaScript Lab 當播放器準備好時,設定按鈕事件 107
Slide 108
Slide 108 text
JavaScript Lab 一首播完就跳下一首 108
Slide 109
Slide 109 text
JavaScript Lab Recap • HTML –h1, h2, div, id, button • JavaScript –event trigger, object –if...else if • 資料檔案 –陣列 • 外部資源 –Youtube iFrame API 109
Slide 110
Slide 110 text
JavaScript Lab Lab • 瀏覽YouTube IFrame Player API • 瀏覽Player 變數有哪些 • 應用 –網頁遊戲與影片結合,勝利或特定情況就撥不同 影片 –影片串接 110
Slide 111
Slide 111 text
JavaScript Lab JavaScript Lab 網頁整合 Ryan Chung
[email protected]
111
Slide 112
Slide 112 text
JavaScript Lab 目標 • 把目前做過的五個練習頁面變成一個網站 • 有一個首頁,然後可以跳至每個練習頁面 • 每個練習頁面也可以互相連結 • 每個練習頁面也可以回到首頁 112
Slide 113
Slide 113 text
JavaScript Lab Bootstrap • 方便好用的樣板,並已考慮桌面與行動端 113 https://getbootstrap.com/
Slide 114
Slide 114 text
JavaScript Lab Example : Carousel • 我們用Carousel這個範例來整合 • 下載:https://ppt.cc/f27Lrx 114 https://getbootstrap.com/docs/4.3/examples/
Slide 115
Slide 115 text
JavaScript Lab 建立一個新專案 • 在電腦中新增一個資料夾:MergePractice • 將剛才解壓縮的內容放至這個資料夾 • 再將過去練習的五個資料夾都搬進來 115
Slide 116
Slide 116 text
JavaScript Lab 首頁測試 • 先確定樣板範例的 index.html有正常運作 116
Slide 117
Slide 117 text
JavaScript Lab 新增 RandomSelect.html • 在資料夾中增加RandomSelect.html • 修改index.html上方的選單 117
Slide 118
Slide 118 text
JavaScript Lab 編輯RandomSelect.html • 先將index.html中的所有內容貼至 RandomSelect.html • 上方Head中,加入需要的CSS 118
Slide 119
Slide 119 text
JavaScript Lab 編輯RandomSelect.html • 修改上方選單中的連結 119
Slide 120
Slide 120 text
JavaScript Lab 編輯RandomSelect.html • main區塊中的大部分內容都刪掉 • 將原本RandomSelect中的index裡的Body中的內容貼過來 120
Slide 121
Slide 121 text
JavaScript Lab 編輯RandomSelect.html • 最下方加上我們需要的JS檔 121
Slide 122
Slide 122 text
JavaScript Lab RandomSelect中的main.js • 合併後需要考量選擇器是否要調整寫法 122
Slide 123
Slide 123 text
JavaScript Lab 測試 • 首頁可跳至RandomSelect,也可再回來 • RandomSelect可正常運作 123
Slide 124
Slide 124 text
JavaScript Lab 相同方法製作另外四個頁面 • 建立xxx.html • 把RandomSelect.html的內容貼過來 • 加上會用到的CSS • 修改Main區塊中的內容(原專案index.html) • 加上會用到的JS • 測試 124
Slide 125
Slide 125 text
JavaScript Lab 細節 • 增加頁面後,要再回去改其他幾頁的選單 • active類別可以讓該選單文字為白色 • 該頁面自己的選單href屬性設定為# • js檔中的圖片路徑 125
Slide 126
Slide 126 text
JavaScript Lab Recap • Bootstrap –樣板套用與修改 –選單 • JavaScript –放的位置、選擇器調整 • CSS –放的位置 • HTML –頁面超連結 126
Slide 127
Slide 127 text
JavaScript Lab JavaScript Lab 網站上線 Ryan Chung
[email protected]
127
Slide 128
Slide 128 text
JavaScript Lab 目標 • 將完成的網站上線 128
Slide 129
Slide 129 text
JavaScript Lab 使用 GitHub Pages 129 https://pages.github.com/
Slide 130
Slide 130 text
JavaScript Lab 註冊一個GitHub帳號 130 https://github.com/join
Slide 131
Slide 131 text
JavaScript Lab 登入後,建立一個新的專案 • 點選照片旁邊的+,New repository 131 https://github.com/new
Slide 132
Slide 132 text
JavaScript Lab 本機設定 • 打開終端機應用程式 –Windows:cmd –Mac:Terminal • 找到專案資料夾 –cd MergePractice • Git 初始化 –git init • 加入所有檔案 –git add . 132
Slide 133
Slide 133 text
JavaScript Lab 本機設定 • 設定上傳描述標記 – git commit –m "First commit" • 對應遠端位置 – git remote add origin https://github.com/YourUserName/YourProgectName.git • 上傳檔案 – git push –u origin master 133
Slide 134
Slide 134 text
JavaScript Lab 設定GitHub Pages • 在Github網站中,進入自己的專案 • 點擊 Settings • 下拉至GitHub Pages • 將Source設定為 master branch • 按下Save 134
Slide 135
Slide 135 text
JavaScript Lab 測試網站是否已上線 • 打開瀏覽器,輸入網址 – https://YourUserName.github.io/YourProjectName 135
Slide 136
Slide 136 text
JavaScript Lab Recap • GitHub –註冊帳號 –建立Repo • 本機端 –終端機下指令 –建立Git、對應遠端、加入、標記、上傳 • GitHub –設定 –GitHub Page、Source Master Branch 136