Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
HTML5 Basic
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ryan Chung
May 02, 2014
Technology
1.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HTML5 Basic
http://MobileDev.TW
Ryan Chung
May 02, 2014
More Decks by Ryan Chung
See All by Ryan Chung
MovieBot Development
ryan403
0
340
Design Voice-First Games for Alexa
ryan403
0
94
AI Teaching Talk
ryan403
0
160
Cognitive Service
ryan403
0
130
jQuery & API Practices
ryan403
0
170
CSS Practices
ryan403
1
190
JavaScript Practices
ryan403
0
120
Web Programming - Lesson 6
ryan403
1
680
Web Programming - Lesson 7
ryan403
1
670
Other Decks in Technology
See All in Technology
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
130
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
210
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.4k
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
120
家のリアーキテクト・リファクタリング
suguruooki
0
100
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
140
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
310
10分で知る最近のOmarchy
komagata
0
240
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
350
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
1
240
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
1
230
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
260
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
930
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
470
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
Designing Experiences People Love
moore
143
24k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The Invisible Side of Design
smashingmag
301
52k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
How to Talk to Developers About Accessibility
jct
2
540
[SF Ruby Conf 2025] Rails X
palkan
2
1.4k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
Practical Orchestrator
shlominoach
191
12k
Transcript
HTML5 Basic http://MobileDev.TW HTML5 Basic
[email protected]
1
HTML5 Basic http://MobileDev.TW 大綱 1. 簡介 2. 原則 3. 測試環境 4. 支援現況 5. 影音播放 6. 繪圖
7. 離線儲存 8. 表單相關 9. Geolocation 10. Drag&Drop 11. 離線網頁 12. Web Workers 2
HTML5 Basic http://MobileDev.TW 1. 簡介 HTML4.01 1999.12.24 XHTML1.0 2002.08.01 XHTML1.1
2008.07.29 XHTML2.0 ? W3C-XHTML2.0 WHATWG-Web Forms & Applicaions HTML5 –由W3C與WHATWG共同制定(2006起) 3
HTML5 Basic http://MobileDev.TW 4
HTML5 Basic http://MobileDev.TW 2.原則 1. 新的特色仍應以HTML,CSS,DOM,JavaScript為基礎 2. 減少外掛元件的需求(如Flash) 3. 增強錯誤處理能力
4. 透過標記語言來取代更多的Script 5. 語言與設備不相依 6. 公開制定進度 5
HTML5 Basic http://MobileDev.TW 3.測試環境 1. 主機+虛擬機 • Firefox • Chrome
• Opera • Safari • iOS Simulator • MAC + iOS SDK • Android Emulator • Android SDK • /tools/android指令開啓 2. 主機+實機 • 無線網路 • 主機Web Server • iPhone實機 • iOS Safari • Android實機 • Android Browser 3. Editor • NotePad++ • TextWrangler • Aptana 6
HTML5 Basic http://MobileDev.TW 4.支援現況 部分支援: ü Safari ü Chrome ü Firefox ü IE9 ü Opera
http://caniuse.com/ http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5) 7
HTML5 Basic http://MobileDev.TW 5.影音播放 8
HTML5 Basic http://MobileDev.TW 5-1.影片播放Video Element 9 除了Opera Mini、IE8之外,通通都支援了!
HTML5 Basic http://MobileDev.TW 5-1.影片格式支援-MP4/H.264 10 IE8、Opera/Opera Mini不行用
HTML5 Basic http://MobileDev.TW 5-1.影片格式支援-WebM/VP8 11 Firefox、Chrome、Opera、Android OK
HTML5 Basic http://MobileDev.TW 5-1.影片格式支援-Ogg/Theora 12 Firefox、Chrome、Opera OK
HTML5 Basic http://MobileDev.TW 5-1.影片播放 語法: <video src="movie.mp4" width="320" height="240" controls="controls">
萬一不支援想顯示的訊息放這裡 </video> Source也可以獨立多寫幾個,萬一User的Browser讀不出來,可以Load 另外一個 <video width="320" height="240" controls="controls"> <source src="movie.ogg" type="video/ogg"> <source src="movie.mp4" type="video/mp4"> </video> 13
HTML5 Basic http://MobileDev.TW 5-1.影片播放 video可以用的屬性: • autoplay:自動撥放 autoplay="autoplay" • controls:顯示控制項
controls="controls" • height, width:撥放器的寬高 • loop:影片要不要循環撥放 • preload:影片是否要在頁面載入時就下載,還是要 等按下Play再load • src:影片來源 14
HTML5 Basic http://MobileDev.TW 5-1.Lab播放影片 15
HTML5 Basic http://MobileDev.TW 5-2.音樂播放Audio Element 16 除了IE8、Opera Mini,其他都OK!
HTML5 Basic http://MobileDev.TW 5-2.音樂播放支援格式 支援格式: 格式 IE9 Firefox3.6+ Opera10.5+ Chrome3.0+
Safari3.0 Ogg Vorbis X O O O X MP3 O X X O O Wav X O O O O 17
HTML5 Basic http://MobileDev.TW 5-2.音樂播放 語法: <audio src="song.ogg" controls="controls"></audio> Source也可以獨立多寫幾個,萬一User的Browser讀不出來, 可以Load另外一個
<audio controls="controls"> <source src="song.ogg" type="audio/ogg"> <source src="song.mp3" type="audio/mpeg"> </audio> 18
HTML5 Basic http://MobileDev.TW 5-2.音樂播放 audio可以用的屬性: • autoplay:自動撥放 autoplay="autoplay" • controls:顯示控制項
controls="controls" • loop:音樂要不要循環撥放 • preload:音樂是否要在頁面載入時就下載,還是要等按 下Play再load • src:音樂來源 19
HTML5 Basic http://MobileDev.TW 5-2.Lab 播放音樂 20
HTML5 Basic http://MobileDev.TW 5-3.用Javascript客製化控制項 21
HTML5 Basic http://MobileDev.TW 5-3.用Javascript客製化控制項 • 拿掉HTML tag中的controls屬性 • 用id取得元件後,可用src屬性取得檔案路徑與名稱 •
在HTML中加入一顆按鈕,預設值為播放 • 按下播放按鈕時,判斷目前是否為暫停,是的話就呼叫 播放方法,並更新按鈕文字為暫停 • 用video.paused是否為真來判斷 • 播放方法:video.play() • 若不是暫停狀態,就呼叫暫停方法,並更新按鈕文字為 播放 • 暫停方法:video.pause() 22
HTML5 Basic http://MobileDev.TW 5-4.加上播放進度與音量控制項 23
HTML5 Basic http://MobileDev.TW 5-4.加上播放進度與音量控制項 • 在HTML中,增加進度與音量顯示區,以及兩顆按鈕(-/+) • 開始播放後,監聽timeupdate事件 • video.currentTime:目前播放進度
• video.duration:全長 • Math.floor()取向下整數 • 按下+按鈕 • 透過video.volume取得目前音量 (介於0~1) • 若音量已經為1,不動作 • 若音量大於0.9,設定為1 • 其他狀況,音量加0.1 • 按下-按鈕 • 若音量已經為0,不動作 • 若音量小於0.1,設定為0 • 其他狀況,音量減0.1 • 用toFixed(2)將數值輸出為小數點後有2位數 24
HTML5 Basic http://MobileDev.TW 6.CANVAS 25
HTML5 Basic http://MobileDev.TW 6.繪圖 Canvas 使用JavaScript在網頁上畫圖 定義出一個矩形,然後控制裡面的每一個pixel 首先要先建立一個Canvas元件 <canvas id="myCanvas"
width="200" height="100"></canvas> Canvas本身並沒有辦法畫圖,要透過JavaScript 26
HTML5 Basic http://MobileDev.TW 6-1.繪圖-矩形 27
HTML5 Basic http://MobileDev.TW 6-1.繪圖-矩形 <!DOCTYPE HTML> <html><body> <canvas id="myCanvas" width="200"
height="100" style="border:1px solid #c3c3c3;"></canvas> <script type="text/javascript"> var c=document.getElementById("myCanvas"); //使用id來找到Canvas元件 var cxt=c.getContext("2d"); //2d是HTML5內建Object,有許多可使用的方法,如畫路徑,箱子,圓圈, 文字,影像等等。 cxt.fillStyle="#00FF00"; //塗成綠色 cxt.fillRect(0,0,100,50); //在(0,0)~(100,50)畫一個矩形 從(0,0)延伸畫一個寬100高50的矩形 </script> </body></html> 28
HTML5 Basic http://MobileDev.TW 6-2.線與圓 6-2-1.畫線: 一樣要取得id並宣告為2d之後: cxt.moveTo(10,10); //先移動到(10,10) cxt.lineTo(150,50); //劃線到(150,50)
cxt.lineTo(10,50); //再劃線到(10,50) cxt.stroke();//顯示 29 線的粗細可以用這個屬性來調: cxt.lineWidth=“5”;
HTML5 Basic http://MobileDev.TW 6-2.線與圓 6-2-1-1.Lab: 請畫出以下圖形 30
HTML5 Basic http://MobileDev.TW 6-2.線與圓 6-2-2.畫圓圈: 一樣要取得id並宣告為2d之後: cxt.fillStyle="#FF0000"; //畫紅色的圓 cxt.beginPath(); cxt.arc(70,18,15,0,Math.PI*2,true);
cxt.closePath(); cxt.fill(); 1) 圓心座標X 2) 圓心座標Y 3) 半徑 4) 畫圓的起點 5) 畫圓的終點 6) 是否為逆時鐘方向 4,5:Math.PI/180*度數 31
HTML5 Basic http://MobileDev.TW 6-2.線與圓 6-2-2-1.Lab: 請畫出四分之一圓 32
HTML5 Basic http://MobileDev.TW 6-2.線與圓 6-2-2-2.Lab: 請畫出奧運圖形(藍、黑、紅、黃、綠) 33
HTML5 Basic http://MobileDev.TW 6-3.漸層 塗上漸層背景 var grd=cxt.createLinearGradient(0,0,175,50); //決定從哪一個點到哪一個點進行漸層 grd.addColorStop(0,"#FF0000"); grd.addColorStop(1,"#0000FF");
//產生由紅轉藍的漸層 cxt.fillStyle=grd; cxt.fillRect(0,0,175,50); 34
HTML5 Basic http://MobileDev.TW 6-4.放圖片 放圖片進去 var img=new Image(); img.src="picture.png"; cxt.drawImage(img,0,0);
//決定圖片從哪一個點開始放 cxt.drawImage(img,0,0,80,80); 前兩個參數決定開始放的點,後兩個參數可以縮放圖片大小, 後兩個可省略 cxt.drawImage(img,0,0,170,343,0,0,100,100); 前面四個參數決定要剪下圖片的哪一個部分,接著兩個參數決 定圖片從哪一個點開始放,最後兩個參數決定縮放 35
HTML5 Basic http://MobileDev.TW 6-4.放圖片 36 6-4-1Lab: 取出女生的頭
HTML5 Basic http://MobileDev.TW 6-4.放圖片 37 6-4-2Lab: 馬力歐向前衝
HTML5 Basic http://MobileDev.TW 7.離線儲存 38
HTML5 Basic http://MobileDev.TW 7-1.localStorage HTML5提供兩種方式進行離線儲存: localStorage : 資料存放無時間限制 7-1A:存放資料 <script
type="text/javascript"> localStorage.lastname="Smith"; document.write("Last name: " + localStorage.lastname); </script> 7-1B:記錄到訪次數 <script type="text/javascript"> if (localStorage.pagecount) {localStorage.pagecount=Number(localStorage.pagecount) +1;} else {localStorage.pagecount=1;} document.write("Visits: " + localStorage.pagecount + " time(s)."); </script> 39
HTML5 Basic http://MobileDev.TW 7-2.sessionStorage sessionStorage : 將資料存在一個session,當使用者關閉瀏覽器時資料即消失 範例一:存放資料 <script type="text/javascript">
sessionStorage.lastname="Smith"; document.write(sessionStorage.lastname); </script> 範例二:計算訪客次數 <script type="text/javascript"> if (sessionStorage.pagecount) {sessionStorage.pagecount=Number(sessionStorage.pagecount) +1;} else {sessionStorage.pagecount=1;} document.write("Visits " + sessionStorage.pagecount + " time(s) this session."); </script> 40
HTML5 Basic http://MobileDev.TW 8.表單相關 41
HTML5 Basic http://MobileDev.TW 8-1.email • 將input type設定為email • 送出表單前會先檢查是否為email格式 •
iPhone上鍵盤會出現@ Firefox跳出警告 Chrome跳出警告 Opera跳出警告 42
HTML5 Basic http://MobileDev.TW 8-2.url • 將input type設定為url • 送出表單前會先檢查是否為網址格式 •
iPhone上鍵盤會出現.com Firefox跳出警告 Chrome跳出警告 Opera不會跳出 警告,但會幫 你加上http:// 43
HTML5 Basic http://MobileDev.TW 8-3.number • 將input type設定為number • 可限定最小值min, 最大值max,
每次增加step Chrome 旁邊出現小小的上下按鈕 Opera 旁邊出現小小的上下按鈕 但數字的大小沒顯示好 44
HTML5 Basic http://MobileDev.TW 8-4.range • 將input type設定為range • 可限定最小值min, 最大值max,
每次增加step Chrome 出現可愛的tuner (但是沒顯示數字!?) Opera也一樣 45
HTML5 Basic http://MobileDev.TW 8-5.date picker • 將input type設定為date Safari 可按上下改變日期
(要按到甚麼時候…) Opera 跳出日曆! 還可以選今天! 46
HTML5 Basic http://MobileDev.TW 8-6.color • 將input type設定為color Opera 可以選顏色! 還可以按其它選更多的顏色!
Chrome 也有了! 47
HTML5 Basic http://MobileDev.TW 8-7.Progress Bar <progress id="bar" value="10" max="100"> •
可設定最大值max, 目前值value Firefox Chrome 48
HTML5 Basic http://MobileDev.TW 8-7.Progress Bar 49 8-7-1.Lab 工作清單結合進度狀態顯示 提示 透過CheckBox的
checked屬性,判斷 是否為true,即可得 知該選項是否被勾選 了
HTML5 Basic http://MobileDev.TW 8-8.meter <meter id="myMeter" max="1500" min="0" value="500" low="150"
high="1350"></meter> • 可設定最大值max, 最小值,目前值value • 過大的警戒臨界值high,過小的警戒臨界值low Chrome Opera 50
HTML5 Basic http://MobileDev.TW 8-9.placeholder • 將input 增加placeholder屬性 Safari Firefox Opera
Chrome 51
HTML5 Basic http://MobileDev.TW 9.GEOLOCATION 52
HTML5 Basic http://MobileDev.TW 9-1.取得地理位置 • 建立一顆按鈕,按下去之後開始動作 • 確認是否有支援地理位置抓取 • 呼叫取得地理位置的方法
• 設定成功取得位置後要做的事情 • 設定取得位置失敗要做的事情 navigator.geolocation.getCurrentPosition(succes sCallback, errorCallback); 53
HTML5 Basic http://MobileDev.TW 9-2.運用Google Map • 取得經度與緯度的值 • 組合出google map的連結
• https://maps.google.com.tw/ • ?q=latValue+","+lonValue 54
HTML5 Basic http://MobileDev.TW 9-2.運用Google Map 9-2-1.Lab 直接去Google Map 提示:改變目前視窗的網址 55
HTML5 Basic http://MobileDev.TW 9-3.不斷更新現在位置 • 改用navigator.geolocation.watchPosition • 可持續取得位置 • 不用時呼叫clearWatch
• window.navigator.geolocation.clearWatch( wat chPositionObject ) 56
HTML5 Basic http://MobileDev.TW 10.DRAG&DROP 57
HTML5 Basic http://MobileDev.TW 拖拉翻譯器 1. Ryan 2. David 3. John 1. 萊恩 2. 大衛 3. 約翰
58
HTML5 Basic http://MobileDev.TW 拖拉翻譯器 • 準備一個純文字檔 • 在網頁中規劃一個div與一個textarea • 拖放的4個事件
• dragenter:拖進該區域 • dragleave:拖離該區域 • dragover:停留在該區域 • drop:放下 59
HTML5 Basic http://MobileDev.TW 拖拉翻譯器 • 頁面載入時,即觀察這4個事件 • 拖進該區域時,區域變成紅色,並顯示Drop it! •
拖離該區域時,恢復為藍色,文字為Come here. • 拖放於該區域時,取得該檔案,進行轉換 • 確認該檔案為文字檔 • 讀出內容,進行翻譯 • 翻譯完後,顯示於textarea 60
HTML5 Basic http://MobileDev.TW 10.Lab 餵食笑臉 61 蘋果 毒蘋果
HTML5 Basic http://MobileDev.TW 11.離線網頁 62
HTML5 Basic http://MobileDev.TW Web App最害怕…..Offline 可連線時,將網 頁儲存一份於快 取中,離線時, 就讀取這一份快 取的檔案
63
HTML5 Basic http://MobileDev.TW Web Server 設定步驟 • 在Web Server上設置.htaccess,加上這一行: •
AddType text/cache-manifest .manifest • 將Apache上的httpd.conf,修改: <Directory /> Options FollowSymLinks AllowOverride All </Directory> 64
HTML5 Basic http://MobileDev.TW 網頁設定步驟 • 建立一個 off-line.manifest檔案 CACHE MANIFEST #
Version:1.0 off-linePage.html off-lineJS.js • off-linePage.html • 修改HTML tag為<html manifest="off-line.manifest"> 65
HTML5 Basic http://MobileDev.TW 如何更新快取 • 直接更新manifest檔案 • 用JavaScript applicationCache.update() •
可監聽以下事件瞭解現況 • checking:正在檢查更新或準備第一次下載manifest • noupdate:manifest沒有變動時 • downloading:正在下載manifest列出的檔案時 • progress:相關檔案都下載好時 • updateready:更新快取完畢,準備替換成最新的快取之前 66
HTML5 Basic http://MobileDev.TW 12.WEB WORKERS 67
HTML5 Basic http://MobileDev.TW Web Workers • 多執行緒進行運算 • 無法共享主執行緒變數 •
無法直接變更window • 無法直接變更document • 傳送訊息回主執行緒 Main Thread New Thread make new thread passing messages passing messages 68
HTML5 Basic http://MobileDev.TW Web Workers • 避免瀏覽器當掉,停住於某一個龐雜的計算script • 使用Web Worker來計算2~1000000是否為質數
• 建立一個新的Web Worker來跑一隻JavaScript • 該檔案計算2~1000000是否為質數 • 過程中需將進度回傳給主執行緒 • 最後將結果也送回主執行緒 69
HTML5 Basic http://MobileDev.TW Web Workers • 建立新執行緒 • 從新執行緒傳遞資料給主執行緒 •
主執行緒接收新執行緒的訊息 70