10. 作業
Last updated
Last updated
做兩個網頁,第一個網頁是一份表單,使用者輸入一些資料,然後將資料傳到第二個網頁顯示出來,給使用者做確認;然後第二個網頁可以讓使用者回前一頁去修改資料。
form.html
完成示意(有套用 CSS):
confirm.html
完成示意(沒有套用 CSS):
詳細說明請依照以下步驟製作開發。
建立 html5/homework
資料夾,然後在該資料夾內,建立以下兩個檔案,檔名分別是 form.html
、confirm.html
。
然後確認本機端網址可以連,例: http://127.0.0.1:5500/homework/form.html
。
也在作業資料夾下,建立 css/form.css
。
更新 form.html
檔:
form.html
檔,body 標籤內放以下原始碼:
完成以下:
1、樣式:form.html
頁面,載入 form.css
檔案。
2、商品數量:一進到頁面,商品數量的 span 標籤要顯示 1
;拉動滑桿,商品數量的 span
標籤,要跟著連動。(滑桿需綁定事件:mousemove
、touchmove
、touchend
或直接綁定 input
事件 )。
3、清空資料按鈕:針對 form 標籤,綁定 reset
事件,當 「清空資料」 按鈕,按下去之後,商品數量的 span 標籤,應回到 1。(註:span 標籤上有 data-default
屬性來表示預設值。)
完成以下:
1、一進到頁面,「是否有支援全螢幕模式」 旁邊的藍色背景 span 標籤,要顯示 「是
」 或 「否
」。
2、「全螢幕按鈕」按下去,網頁要進入全螢幕模式,按鈕裡的文字要變成 「退出全螢幕模式
」;如果按鈕再按一次,網頁要退出全螢幕模式,按鈕裡的文字要變成 「進入全螢幕模式
」。
在 form.html
檔當中,加以下的 CSS:
完成以下:
1、一進到頁面,就抓取使用者的經緯度資料,若使用者同意,就將取得的經緯度資料,放到經緯度欄位。若使用者不同意,就將經緯度欄位加上 disabled
屬性。
2、一進到頁面,「是否有支援地理資訊定位」 旁邊的藍色背景 span 標籤,要顯示 「是
」 或 「否
」。
3、當使用者按下 「清空資料
」 按鈕時,因為也會將經緯度欄位清空,所以要再次抓取經緯度,放回欄位上。
在 form.html
檔當中,加以下的 CSS:
提示:
drop
事件要加上 e.preventDefault()
,才能夠允許取得檔案總管拖曳過來的檔案。
e.dataTransfer.files
:可以取得從檔案總管拖曳過來的檔案(即 FileList
)。
完成以下:
1、dragenter
事件觸發時,替 #preview
元素加 -on
這個 class;
dragleave
事件觸發以及 drop
事件觸發時,替 #preview
元素移除 -on
這個 class。
2、從自己電腦檔案總管,拖曳圖檔到頁面上的 「預覽圖
」 區域,取得 FileList 物件,在 Console 中印出來看。
從 「自己電腦」 拖曳圖片檔案,或點選 「預覽圖」 來選圖,都要呈現預覽圖。為簡化,做選一張圖就好。也就是 「預覽圖
」 區域,僅顯示一張圖。
完成以下:
1、點擊 「預覽圖
」 區域,跳出選圖的彈窗,然後將圖片在 「預覽圖
」 區域呈現,圖片需加上 preview_img
這個 class,才不會太大張。
2、預覽圖顯示成功後,如果使用者再點擊選圖,然後按 「取消」,預覽圖區域需回到原介面。
3、從電腦的檔案總管,用拖曳的方式,也要能呈現預覽圖。結果同上。
4、按下 「清空資料
」 按鈕,也要將「預覽圖
」區域,回到原來的介面。
做到這邊,共有以下幾個資料可以取得,假設都是必填:
商品名稱
商品數量
商品圖片(Base64)
使用者位置經緯度
完成以下:
1、在按下 「送出資料
」 按鈕時,將以上資料存到 Session Storage
,並且將頁面導向到 confirm.html
頁面。
導向到 confirm.html 頁面的程式,可使用:
定義存資料到 Session Storage
的格式:
key
的名稱為:form_data
value
的格式為以下範例:
將 sessionStorage 的資料,顯示在 confirm.html
網頁上,只要能將資料放到頁面上即可,資料有:
商品名稱
商品數量
位置資訊經度
位置資訊緯度
商品圖
在 homework
資料夾內,建立 js
資料夾,然後在其內建立 worker_countdown.js
檔案。
使用 worker 來倒數計時 10 秒,10秒內要確認資料,若數完 10 秒,則畫面停住就不再計時;需在 10 秒內按下 「確認
」 按鈕然後,結束 worker 的倒數計時。
接續上個步驟,倒數完 10 秒之後,返回前一頁重填資料;或按下 「重填
」 按鈕,返回前一頁重填資料。
返回前一頁時,需判斷 sessionStorage.getItem("form_data")
是否有資料,若有的話,需將資料填回到原本的表單。
若按下 「清空資料」 按鈕,也需將 sessionStorage
裡的資料清空。
最晚繳交日期:0/(日) 晚上 12 點之前。
請將 homework
資料夾壓成壓縮檔,然後透過以下網址繳交:
前端班: https://frontend.tibame.com/
Java 班: https://java.tibame.com/