排版快捷鍵: alt+f+control
沒雙引號就沒括號
基本git更新資料
第十五周
各種物件
第十三周 Canvas
在畫布上顯示圖片
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
截取影片
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
同步出現灰階影片
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
即時函數
( function() ) ()
網頁載入就會執行的函式,因為函示沒名稱,所以只會執行一次
建構函式
屬性age,方法print
第十二周 Canvas
在畫布上畫矩形
取得渲染環境及其繪圖函數 canvas.getContext("2d")
輸入參數'2d':渲染環境類型

開始話、結束畫

用滑鼠畫圖
- 準備好滑鼠事件
- 跟著滑鼠畫線
用點連成線 arc(x, y, radius, startAngle, endAngle)

使用另一種方法創造畫布
第十一周 Spline
第十周 卷軸
- 使用卷軸向下滑時觸發 淡出淡入動畫
卷軸事件
卷軸的移動量window.pageYoffset
淡出淡入 用樣式控制屬性來做動畫 關鍵影格@keyframes
使用:要設一個開關器(status)
畫到下面讓影片撥放 v.play()
往上滑暫停影片 v.pause()
Array in javascript
陣列 index 一樣從0開始
宣告var array=[]
用中括號,可以同時儲存不同資料類型
-
新增/刪除 元素
- 在末端 新增
array.push("test")
刪除array.pop()
- 在開頭 新增
array.shift()
刪除array.shift()
-
走訪
- 迴圈
for(var i=0;i<array.length;i++)
- 對於每個//53s/6tj06gj456
-
-
使用實例
用類別來抓元素var g=document.getElementsByClassName("a")
如果class為a的有很多個,就會將抓下來的元素儲存為陣列g、從0開始依照元素出現次序擺放
-
二維陣列 製作遊戲地圖
- 畫地圖
先設一個物件放圖
用 innerHTML
渲染網頁(重畫圖)
用陣列加圖片
第九周 side project
構想:like動態島 滑鼠控制盤子去接球 球碰到會反彈
- 去背的球、盤子 與樣式

注: 去背的圖只能用.png不然還是會留白喔
-
控制球與盤子的位置
-
滑鼠事件控制盤子移動
- 滑鼠點一下元素
onclick
–->開始移動 or 暫停移動–->設定一個開關
- 盤子跟隨滑鼠移動–->找到盤子( 相對於視窗) 的座標
getBoundingClientRect()
- 把滑鼠放在盤子中間–-> 滑鼠的位置=滑鼠(相對於視窗)的位置 再減掉一半的 盤子大小
- 更改盤子的位置–->開關打開時 盤子位置=滑鼠位置
-
按開始鍵後,球掉下來
- 球相對於視窗的座標 + 加速度dx、dy = 移動
- 要show出掉落的過程–-> 需要一直重畫畫面 ,用迴圈會閃現(中間過程要短暫停留,肉眼才看得到) –-> 用計時器重複執行 "球掉落的函式"
- 觸底結束–->Y方向:球的位置By視窗高度
window.innerHeight
ball.offsetHeight
元素高度(包含邊框跟padding)
- 左右碰到反彈–->dx*=-
- 讓球邊動邊 "轉"
-
重來鍵
-
教學說明+demo影片
//os:只有80分 青菜辣
第八周 Video Object
影片
避免載入影片的等待時間,先載影片才在背景裡,按按鈕後再重播。
- 藏影片
背景圖片放在最下面、先不show影片、播放鍵置頂
- 播放/播完換影片
controls
下方有播放按鈕
autoplay
自動撥放
影片開始撥放影格時會觸發 timeupdate
播放時間 v.currentTime
(可以用它來製作播放進度條)
播放影片 video.play()
video.ended
是布林變數,影片結束時會==True
複習淡出淡入
待打
第六周 鍵盤事件/
樣式表
避免重複載入造成的呆滯時間–->加上開關
document.addEventListener("ketdown", move);
圖片隱藏/顯示
樣式設定display: none;
程式控制moodbox.style.display = "block";
免命名函式
改善剛按鍵盤的卡頓–->用計時器每0.03秒執行乙次
第五周 物件/Event物件
物件的N種寫法
{}
代表一個 物件 或是程式區塊
- 在大括號裡面直接設定物件的屬性 用冒號
- 用逗號分行
- 物件裡面的方法
fun_name:function(){}
this
呼叫自己
方法一:
結果
方法二:
- 用 new 建出物件
- 用分號分隔
- 物件.屬性= 直接給值
- 物件.函式名=function(){}
Event物件事件
課堂作業
水果籃,設定水果單價、點案後圖片消失 金額加總
第四周 CSS樣式
CSS樣式
-
padding:70px
元素內邊框的留白
padding-right
/padding-bottom
可以指定方向
- 所有填充的屬性 單位:px/pt/%,可用繼承(指定從老爸填充)
- 用比例的方式可以在縮放時跟著動
-
z-index:1
不會被遮蓋(值>0就好)
-
id裡面的類別樣式(老爸裡面的兒子的孫子..):
-
不要有卷軸:
- 刪掉預設的留白

第三周 背景/類別/樣式/繼承
背景圖/類別/樣式
樣式存放在
- 幫id 加樣式
#id_name{}
- 幫類別class 加樣式
.class_name{}
position樣式設定
- solid預設:固定
- relative:相對於預設值
- absolitive:固定於老爸
- fixed:固定於視窗(就算滾動頁面 還是在同一位置
繼承關係
讓氣球在背景圖的範圍內飄動
step1 設定階層、樣式
- 背景圖當老爸 氣球當兒子
- 設定position樣式 讓氣球位置可移動
position: absolute;
step2 控制style中的屬性(控制氣球座標)
- 設變數
- 轉換型態
parseInt()
- 加上Y方向 左右飄動
四捨五入 變整數
Math.round()
- 超過底圖的範圍就看不到 :在底圖的樣式中 新增覆蓋
overflow:hidden
或是id.style.visibility="hidden"
把程式、樣式分開
樣式放在.html,程式碼放在.js
<script src="程式名稱.js"></script>
第二周 計時器
倒數計時器
- 在 固定的一段時間 結束後重複執行某事
依電腦效能 不同電腦時間不一致
- 覆蓋原本的內容
- 每1秒,圖片切換一次
隨機切換多張圖片
- 陣列放圖片
- 隨機
Math.random()
得到0-1之間的數
計時器開關
- 重複觸發
- 只觸發一次
在一段時間time後,執行一次函式
- 匿名函式 (不用命名 直接綁定在事件上)
作業二 點按圖片漸消失
方法一
- 放圖、點擊事件onclick、給id用id控制換圖
- 每0.1秒換圖–->每幾秒重複呼叫換圖,直到沒圖
第一周 圖片/滑鼠/物件監聽
- 使用工具vs code
- 裝外掛可以在瀏覽器中呈現

- 開啟專案的資料夾

- 創造一個html檔案

- 操作快捷鍵: ! + enter 網頁架構、Tab系統推薦程式
滑鼠事件換圖片
- 圖片放在專案的資料夾內
- 放圖片 + 滑鼠事件
- 自定義函式
- 除錯的方式(在網頁按F12)

- 按鈕事件
Demo

回到上頁 X 多頁的網頁
- 新增另一頁

- 前往指定的頁 javascript語法
- 包在自訂義涵式裡 再 放到按鈕事件
事件監聽器
- 設定變數
- 利用id做偵聽
document.getElementById("id")
開啟&關閉新視窗 window物件
- 設定全域變數
- 按鈕
- 開啟額外視窗
window.open("url","name","width=,height= ")

作業一
滑鼠點按小圖片後,將大圖片置換成對應的小圖片

方法一
- 放圖片 設定長寬與排版
- 滑鼠點擊事件
onclick=""
- 自己定義換圖片的函式
- 用id設定物件變數,更改物件屬性 以置換圖片
方法二
- 設定5張圖片的大小,並將5張圖片都設上id 和 onclick事件(滑鼠點擊)
- 定義一個函式後,設定var變數
- 用if判斷id為哪張圖片,接著再置換圖片
方法三