|
HTML5 discovery tutorial
De $1
Table des matières- 1. Introduction
- 2. New structural elements header, footer, section, article, summary, details, etc.
- 3. Forms
- 3.1. New attributes for input fields : placeholder, pattern, autofocus CSS pseudo classes...
- 3.2. Selecting files and directory
- 3.3. Date, time, etc.
- 3.4. Color
- 3.5. Number
- 3.6. Range
- 3.7. Progress
- 3.8. Email
- 3.9. Tel
- 3.10. Url, search, voice recognition
- 3.11. Custom validation API examples
- 3.12. The new <output> field
- 3.13. The <meter> element
- 3.14. The new <datalist> element
- 3.15. Declare <input> fields out of the <form></form>
- 4. WebFonts
- 5. Drag'n'drop and File API
- 5.1. Access file details (name, size, type) :
- 5.2. Instant preview of dropped images
- 6. Canvas
- 6.1. Simple examples
- 6.2. Shadows
- 6.3. Gradients
- 6.4. Clipping/using mask to draw only a part of the canvas
- 6.5. Track mouse events
- 6.6. Stack canvases in layers
- 6.7. Draw a canvas into other canvases (use of drawImage with a canvas instead of an image)
- 6.8. Images
- 6.9. 2D Transformations
- 6.10. Save canvas content
- 6.11. Animation using requestWindowFrame()
- 6.12. Access pixels inside a canvas
- 6.13. Canvas drawing modes
- 7. Video
- 7.1. Basic usage
- 7.2. Take snapshot of a video
- 7.3. Change properties on the fly (size, position, angle etc.)
- 7.4. Video special effects : incrustation / blue screening
- 8. Video capture
- 8.1. Display webcam stream in a video element
- 8.2. Apply CSS effects on a video element with live webcam
- 8.3. Take a snapshot from the live webcam stream
- 8.4. Other demos
- 9. Sound
- 9.1. The <audio> element
- 9.2. What sound format does your browser supports ?
- 9.3. Audio Data and Web Audio API
- 9.4. Generate synthetic sound
- 9.5. Real time sound analysis and how to add sound effects in real time (reverb, delay, etc.)
- 9.6. Real time mixing 12 tracks at the same time
- 10. WebSockets
- 10.1. Check if your browser supports WebSockets
- 10.2. Simple example
- 10.3. High level library over WebSockets
- 10.4. A real time action game that uses WebSockets, canvas, Box2D.js for physics
- 11. Geolocation
- 11.1. Simple example
- 11.2. With Google Maps
- 11.3. Track position in real time
- 12. Mobile devices: using gestures
- 13. Device Orientation and Acceleration
- 1. Introduction1
- 2. New structural elements header, footer, section, article, summary, details, etc.2
- 3. Forms3
- 3.1. New attributes for input fields : placeholder, pattern, autofocus CSS pseudo classes...4
- 3.2. Selecting files and directory5
- 3.3. Date, time, etc.6
- 3.4. Color7
- 3.5. Number8
- 3.6. Range9
- 3.7. Progress10
- 3.8. Email11
- 3.9. Tel12
- 3.10. Url, search, voice recognition13
- 3.11. Custom validation API examples14
- 3.12. The new <output> field15
- 3.13. The <meter> element16
- 3.14. The new <datalist> element17
- 3.15. Declare <input> fields out of the <form></form>18
- 4. WebFonts19
- 5. Drag'n'drop and File API20
- 5.1. Access file details (name, size, type) :21
- 5.2. Instant preview of dropped images22
- 6. Canvas23
- 6.1. Simple examples24
- 6.2. Shadows25
- 6.3. Gradients26
- 6.4. Clipping/using mask to draw only a part of the canvas27
- 6.5. Track mouse events28
- 6.6. Stack canvases in layers29
- 6.7. Draw a canvas into other canvases (use of drawImage with a canvas instead of an image)30
- 6.8. Images31
- 6.9. 2D Transformations32
- 6.10. Save canvas content33
- 6.11. Animation using requestWindowFrame()34
- 6.12. Access pixels inside a canvas35
- 6.13. Canvas drawing modes36
- 7. Video37
- 7.1. Basic usage38
- 7.2. Take snapshot of a video39
- 7.3. Change properties on the fly (size, position, angle etc.)40
- 7.4. Video special effects : incrustation / blue screening41
- 8. Video capture42
- 8.1. Display webcam stream in a video element43
- 8.2. Apply CSS effects on a video element with live webcam44
- 8.3. Take a snapshot from the live webcam stream45
- 8.4. Other demos46
- 9. Sound47
- 9.1. The <audio> element 48
- 9.2. What sound format does your browser supports ?49
- 9.3. Audio Data and Web Audio API50
- 9.4. Generate synthetic sound51
- 9.5. Real time sound analysis and how to add sound effects in real time (reverb, delay, etc.)52
- 9.6. Real time mixing 12 tracks at the same time53
- 10. WebSockets54
- 10.1. Check if your browser supports WebSockets55
- 10.2. Simple example56
- 10.3. High level library over WebSockets57
- 10.4. A real time action game that uses WebSockets, canvas, Box2D.js for physics58
- 11. Geolocation59
- 11.1. Simple example60
- 11.2. With Google Maps61
- 11.3. Track position in real time62
- 12. Mobile devices: using gestures 63
- 13. Device Orientation and Acceleration64
Introduction
In this part of the tutorial, you will discover interactive examples (you will be able to change the code and see the results interactively) of HTML features. Some APIs or features are not yet available on every web browser, so you may need to try switch from one browser to another in order to run all the examples.
New structural elements header, footer, section, article, summary, details, etc.
Forms
Resources:
Excellent, detailed presentations with lots of examples of HTML5 forms by:
New attributes for input fields : placeholder, pattern, autofocus CSS pseudo classes...
Selecting files and directory
- Use of the new "multiple" attribute for selecting several files at a time. In addition, uses the HTML5 File API for reading pictures and preview them : http://jsbin.com/abelak/edit#html,live71
- Use of the new "directory" attribute for selecting a directory. Works only in webkit-based browsers (Chrome, Safari) : http://jsbin.com/iyixaf/3/edit#html,live72
Note that in the example the attribute is named "webkitdirectory" instead of "directory" as this is still an experimental implementation.
Url, search, voice recognition
Custom validation API examples
The new <datalist> element
Declare <input> fields out of the <form></form>
Drag'n'drop and File API
Access file details (name, size, type) :
Instant preview of dropped images
Canvas
Good references :
Simple examples
- The most simple example, draw a red filled rectangle in a canvas : http://jsbin.com/utihaq/2/edit#html,live95
- Simple example of drawing into a canvas with different colors, widths, shapes : http://jsbin.com/apihec/2/edit#html,live96
- Draw lines and play with line attributes lineWidth, lineJoin, lineCap : http://jsbin.com/iwaqit/2/edit#html,live97
- Use paths, try the context.closePath() function : http://jsbin.com/elurad/2/edit#html,live98
- Draw a circle, play with styles, closePath()... : http://jsbin.com/iyecom/2/edit#html,live99
- Draw some text : http://jsbin.com/ivazub/4/edit#html,live100
- For more complex shapes (quadratic and bezier curves), see http://www.html5canvastutorials.com/...dratic-curves/101 and http://www.html5canvastutorials.com/...bezier-curves/102
- Draw arrows in a canvas :
Clipping/using mask to draw only a part of the canvas
Stack canvases in layers
- This example shows how we create two canvases one on top of another. Mouse draws in the canvas at the back, while the mouse position is displayed in the front canvas. Each the mouse moves, the front canvas is cleared before redrawing the mouse position, while the back canvas remains intact. Try it : http://jsbin.com/ogehin/2/edit#html,live112
Draw a canvas into other canvases (use of drawImage with a canvas instead of an image)
Animation using requestWindowFrame()
Canvas drawing modes
Canvas modes are "global" settings that decide how the things you draw will be merged with the actual canvas content. Default is "added" : you draw a red line, result will be a red line ! Some modes are very useful like "destination-out" that makes transparent eveything you draw : draw a red line, il will erase the canvas with the shape of the line !
Video
Change properties on the fly (size, position, angle etc.)
- Change size on the fly : http://jsbin.com/uretal/3/edit#html,live132
- Change video size and rotation when the mouse is over it : http://jsbin.com/ahunon/4/edit#html,live133
- Video player with controls for zooming, panning, rotating : http://jsbin.com/axonek/edit#html,live134
- Rotating video : http://jsbin.com/unaqej/4/edit#html,live135 , this example draws in real time each video frame into a canvas, rotate the canvas,draw again into another canvas. The video and first canvas are offscreen, only the last destination canvas is visible.
- Other funny (and ugly) demos of video transformed : http://www.w3.org/2010/Talks/0430-ww...plh/ugly.xhtml136
Video special effects : incrustation / blue screening
Most of these special effects consist in drawing the current image from the <video> element into a <canvas>, then grab the canvas content, modify it in real time, then draw in another canvas or set the canvas content as the source of an <img>.
Video capture
For these example to run, you need a browser that supports the getUserMedia API. See : Get a web browser that supports the getUserMedia API143.
Resources :
Display webcam stream in a video element
Apply CSS effects on a video element with live webcam
Take a snapshot from the live webcam stream
Sound
What sound format does your browser supports ?
Audio Data and Web Audio API
Resources :
Generate synthetic sound
Chrome latest of Safari nightly build only !
Real time sound analysis and how to add sound effects in real time (reverb, delay, etc.)
Chrome latest of Safari nightly build only !
- Nice demo (with downloadable sources) by master students from the university of Nice, France. This demo takes some time for loading a song (about 1 minute if slow bandwith, take your time...), then displays real time animation based on the analysis of the sound + adds reverb and delay effects. : http://goo.gl/92REu161.
Real time mixing 12 tracks at the same time
- A very impressive demo. Loads in Ajax 12 sound files, then mixes them using different audioContext nodes (for panning, volume, etc.). Takes a long time to load, if slow bandwidth, try this at home ! http://kevincennis.com/mix/163
WebSockets
In order to test how WebSockets work, you need a WebSocket server and some code on the server. Some examples run on a very simple online WebSocket server and do not need any installation.
Check if your browser supports WebSockets
Simple example
Use the "view plain menu" in the top left of the small windows that shows hightlighted code below, copy the source in a testWebSocket.html file, open it in your browser. It will send a message to html5rocks.websocket.org/echo (WebSocket server that echos messages it receives) and display some alerts to check if WebSockets are supported, if the message has been correctly sent or received as an echo.
- </pre>
- <script type="text/javascript">
- function WebSocketTest() {
- if ("WebSocket" in window) {
- alert("WebSocket is supported by your Browser!");
- // Let us open a web socket
- var ws = new WebSocket("ws://html5rocks.websocket.org/echo");
- ws.onopen = function () {
- // Web Socket is connected, send data using send()
- ws.send("Hello World!");
- alert("Sending: 'Hello World from WWW2012' to ws://html5rocks.websocket.org/echo using WebSockets!");
- };
- ws.onmessage = function (evt) {
- var received_msg = evt.data;
- alert("Message just received from WS echo server:" + " '" + received_msg + "'");
- };
- ws.onclose = function () {
- // websocket is closed.
- alert("Connection is closed...");
- };
- }
- else {
- // The browser doesn't support WebSocket
- alert("WebSocket NOT supported by your Browser!");
- }
- }
- </script>
-
-
- <div id="sse">
- <a href="javascript:WebSocketTest()">Run WebSocket</a>
- </div>
</pre>
<script type="text/javascript">
function WebSocketTest() {
if ("WebSocket" in window) {
alert("WebSocket is supported by your Browser!");
// Let us open a web socket
var ws = new WebSocket("ws://html5rocks.websocket.org/echo");
ws.onopen = function () {
// Web Socket is connected, send data using send()
ws.send("Hello World!");
alert("Sending: 'Hello World from WWW2012' to ws://html5rocks.websocket.org/echo using WebSockets!");
};
ws.onmessage = function (evt) {
var received_msg = evt.data;
alert("Message just received from WS echo server:" + " '" + received_msg + "'");
};
ws.onclose = function () {
// websocket is closed.
alert("Connection is closed...");
};
}
else {
// The browser doesn't support WebSocket
alert("WebSocket NOT supported by your Browser!");
}
}
</script>
<div id="sse">
<a href="javascript:WebSocketTest()">Run WebSocket</a>
</div>
High level library over WebSockets
A more complete example involving real use cases is proposed in the "advanced tutorial for geeks" : A multi-participant Paint in HTML5166 that proposes to install the NodeJS server + some additional modules that ease the development of multi-participant applications over WebSockets. This tutorial uses the NowJS 167library that provides ditributed JavaScript objects + session and group management over WebSockets.
Popular libraries for NodeJS, like socket.io168, propose fallback mecanisms in case the web browser used by a participant does not support WebSockets (while your code remains unchanged, the lib will switch from WebSockets to Flash WebSockets or Ajax Long Calling...), handle deconnexions, etc.
NowJS is built upon socket.io169 and proposes remote function/method calls and shared objects between client and server code. Such libraries dramatically reduce the amount of code necessary to write classic use cases for multi-participant sofware.
A real time action game that uses WebSockets, canvas, Box2D.js for physics
- Developped by master students from University of Nice, France, during the HTML5 course. Use NodeJS + socket.io + NowJS + Bow2D.js. The game uses the Box2D.js lib for physic simulation (same used by Angry Birds) both on client and server side. A NodeJS Server application written in JavaScript is doing all physics computations and clients use the same library locally. When messages take too long to arrive to clients, objects follow predicted trajectories. Two players can play at the same time, others are spectators. try it there : http://futchball.madjawa.net/170 Sources downloadable from game page.
- Video of this game running : http://www.youtube.com/<wbr/>watch?v=VsK9ljw6JvE171
Mobile devices: using gestures
Note: try these examples on a mobile device !
Device Orientation and Acceleration
Beware : all following examples must be run on a device with an orientation sensor and/or with an accelerometer. Furthermore, Chrome/Safari and Mozilla supports these API, Opera mobile not yet at the time of this writing. Users of old Chrome versions (old Androids) may be unable to run the examples too.
Notes de bas de page1 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Introduction 2 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#New_structural_elements_header.2c_footer.2c_section.2c_article.2c_summary.2c_details.2c_etc. 3 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Forms 4 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#New_attributes_for_input_fields_.3a_placeholder.2c_pattern.2c_autofocus_CSS.c2.a0pseudo_classes... 5 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Selecting_files_and_directory 6 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Date.2c_time.2c_etc. 7 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Color 8 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Number 9 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Range 10 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Progress 11 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Email 12 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Tel 13 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Url.2c_search.2c_voice_recognition 14 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Custom_validation_API_examples 15 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#The_new_.3coutput.3e_field 16 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#The_.3cmeter.3e_element 17 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#The_new_.3cdatalist.3e_element 18 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Declare_.3cinput.3e_fields_out_of_the_.3cform.3e.3c.2fform.3e 19 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#WebFonts 20 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Drag'n'drop_and_File_API 21 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Access_file_details_(name.2c_size.2c_type)_.3a 22 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Instant_preview_of_dropped_images 23 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Canvas 24 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Simple_examples 25 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Shadows 26 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Gradients 27 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Clipping.2fusing_mask_to_draw_only_a_part_of_the_canvas 28 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Track_mouse_events 29 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Stack_canvases_in_layers 30 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Draw_a_canvas_into_other_canvases_(use_of_drawImage_with_a_canvas_instead_of_an_image) 31 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Images 32 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#2D_Transformations 33 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Save_canvas_content 34 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Animation_using_requestWindowFrame() 35 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Access_pixels_inside_a_canvas 36 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Canvas_drawing_modes 37 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Video 38 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Basic_usage 39 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Take_snapshot_of_a_video 40 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Change_properties_on_the_fly_(size.2c_position.2c_angle_etc.) 41 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Video_special_effects_.3a_incrustation_.2f_blue_screening 42 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Video_capture 43 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Display_webcam_stream_in_a_video_element 44 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Apply_CSS.c2.a0effects_on_a_video_element_with_live_webcam 45 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Take_a_snapshot_from_the_live_webcam_stream 46 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Other_demos 47 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Sound 48 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#The_.3caudio.3e_element 49 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#What_sound_format_does_your_browser_supports_.3f 50 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Audio_Data_and_Web_Audio.c2.a0API 51 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Generate_synthetic_sound 52 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Real_time_sound_analysis_and_how_to_add_sound_effects_in_real_time_(reverb.2c_delay.2c_etc.) 53 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Real_time_mixing_12_tracks_at_the_same_time 54 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#WebSockets 55 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Check_if_your_browser_supports_WebSockets 56 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Simple_example 57 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#High_level_library_over_WebSockets 58 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#A_real_time_action_game_that_uses_WebSockets.2c_canvas.2c_Box2D.js_for_physics 59 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Geolocation 60 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Simple_example_2 61 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#With_Google_Maps 62 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Track_position_in_real_time 63 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Mobile_devices.3a_using_gestures 64 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial#Device_Orientation_and_Acceleration 65 http://jsbin.com/agoyoj/9/edit 66 http://blog.tremily.us/posts/HTML5_outlines/ 67 http://jsbin.com/ifofib/3/edit 68 http://standardista.com/forms/ 69 http://tiffanybbrown.com/presentations/2011/html5forms/ 70 http://jsbin.com/aguyaw/edit#html 71 http://jsbin.com/abelak/edit#html,live 72 http://jsbin.com/iyixaf/3/edit#html,live 73 http://jsbin.com/otovut/2/edit#html,live 74 http://jsbin.com/itufey/2/edit#html,live 75 http://jsbin.com/unagec/2/edit#html,live 76 http://jsbin.com/ezuvir/3/edit#html,live 77 http://jsbin.com/aqejis/edit#html,live 78 http://jsbin.com/uxajif/4/edit#html,live 79 http://jsbin.com/opaqam/2/edit#html,live 80 http://jsbin.com/equyim/2/edit#html,live 81 http://jsbin.com/ifamoq/3/edit#html,live 82 http://jsbin.com/otidav/7/edit 83 http://jsbin.com/evecux/2/edit#html,live 84 http://jsbin.com/elodob/2/edit#html,live 85 http://jsbin.com/uwozih/2/edit#html,live 86 http://jsbin.com/adewof/2/edit#html,live 87 http://jsbin.com/ofucaq/edit#html,live 88 http://jsbin.com/ofelet/11/edit 89 http://jsbin.com/ewarak/2/edit#html,live 90 http://jsbin.com/orurip/11/edit#html,live 91 http://www.html5canvastutorials.com/ 92 http://tutorials.jenkov.com/html5-canvas/index.html 93 http://projects.joshy.org/presentations/HTML/CanvasDeepDive/presentation.html 94 http://briangrinstead.com/canvasslides 95 http://jsbin.com/utihaq/2/edit#html,live 96 http://jsbin.com/apihec/2/edit#html,live 97 http://jsbin.com/iwaqit/2/edit#html,live 98 http://jsbin.com/elurad/2/edit#html,live 99 http://jsbin.com/iyecom/2/edit#html,live 100 http://jsbin.com/ivazub/4/edit#html,live 101 http://www.html5canvastutorials.com/tutorials/html5-canvas-quadratic-curves/ 102 http://www.html5canvastutorials.com/tutorials/html5-canvas-bezier-curves/ 103 http://jsbin.com/xodawu/4/edit 104 http://www.dbp-consulting.com/tutorials/canvas/CanvasArrow.html 105 http://jsbin.com/xodawu/6/edit 106 http://jsbin.com/oqeyip/2/edit#html,live 107 http://jsbin.com/urucem/3/edit#html,live 108 http://jsbin.com/iqipov/2/edit#html,live 109 http://projects.joshy.org/presentations/HTML/CanvasDeepDive/presentation.html 110 http://jsbin.com/idegay/2/edit 111 http://jsbin.com/idegay/19/edit 112 http://jsbin.com/ogehin/2/edit#html,live 113 http://jsbin.com/ziheri/6/edit 114 http://jsbin.com/emixuc/4/edit#html,live 115 http://jsbin.com/etufab/3/edit#html,live 116 http://jsbin.com/utihaq/5/edit#html,live 117 http://tutorials.jenkov.com/html5-canvas/transformation.html 118 http://jsbin.com/azacaf/3/edit#html,live 119 http://jsbin.com/etirop/2/edit#html,live 120 http://jsbin.com/imisah/2/edit#html 121 http://html5demo.braincracking.org/news/canvas.php 122 http://tutorials.jenkov.com/html5-canvas/pixels.html 123 http://jsbin.com/ikanur/3/edit#html,live 124 http://briangrinstead.com/canvasslides/photos4.html 125 http://jsfiddle.net/uzMPU/ 126 http://tutorials.jenkov.com/html5-canvas/composition.html 127 http://html5doctor.com/video-canvas-magic/ 128 http://jsbin.com/irofib/6/edit#html,live 129 http://jsbin.com/irofib/5/edit#html,live 130 http://www.w3.org/2010/Talks/0430-www2010-plh/video.html 131 http://jsbin.com/uburuh/2/edit#html,live 132 http://jsbin.com/uretal/3/edit#html,live 133 http://jsbin.com/ahunon/4/edit#html,live 134 http://jsbin.com/axonek/edit#html,live 135 http://jsbin.com/unaqej/4/edit#html,live 136 http://www.w3.org/2010/Talks/0430-www2010-plh/ugly.xhtml 137 http://ajaxian.com/archives/dynamic-content-injection-with-html5-canvas-and-video 138 https://developer.mozilla.org/samples/video/chroma-key/index.xhtml 139 http://david.blob.core.windows.net/html5graphics/canvasgreenscreen.htm 140 http://blogs.msdn.com/b/davrous/archive/2011/05/20/introduction-aux-apis-graphiques-d-html5-svg-amp-canvas-2-4.aspx 141 http://www.craftymind.com/factory/html5video/CanvasVideo.html 142 http://www.craftymind.com/2010/04/20/blowing-up-html5-video-and-mapping-it-into-3d-space/ 143 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/Get_a_web_browser_that_supports_the_getUserMedia_API 144 http://www.html5rocks.com/en/tutorials/getusermedia/intro/ 145 http://dev.opera.com/articles/view/labs-more-fun-using-the-web-with-getusermedia-and-native-pages/ 146 http://dev.opera.com/articles/view/playing-with-html5-video-and-getusermedia-support/ 147 http://jsbin.com/ipeyal/237/edit 148 http://jsbin.com/ivefis/34/edit 149 http://jsbin.com/owohil/5/edit#html,live 150 http://mainline.essi.fr 151 http://www.html5rocks.com/en/tutorials/getusermedia/intro/ 152 http://jsbin.com/itaros/2/edit#html,live 153 http://jsbin.com/uvusob/2/edit 154 http://html5demo.braincracking.org/demo/audio.php 155 http://www.jplayer.org/HTML5.Audio.Support/ 156 http://slides.agektmr.com/webaudio_basic/english.html 157 http://www.htmlfivewow.com/ 158 http://www.html5rocks.com/en/tutorials/webaudio/intro/ 159 https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html 160 http://jsbin.com/abesul/5/edit#html,live 161 http://goo.gl/92REu 162 http://goo.gl/rrM6a 163 http://kevincennis.com/mix/ 164 http://websocket.org 165 http://techdows.com/2010/12/enable-websockets-in-opera-11.html 166 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/Tutorial_WWW_2012 167 http://nowjs.com/ 168 http://socket.io/ 169 http://www.socket.io/ 170 http://futchball.madjawa.net/ 171 http://www.youtube.com/watch?v=VsK9ljw6JvE 172 http://www.w3schools.com/html5/html5_geolocation.asp 173 http://jsbin.com/ezivih/2/edit#html,live 174 http://jsbin.com/etayim/2/edit#html,live 175 http://jsbin.com/ovehuj/3/edit#html,live 176 http://jsbin.com/ukogoq/2/edit 177 http://www.html5rocks.com/en/tutorials/geolocation/trip_meter 178 http://jsbin.com/epoqif/2/edit 179 http://jsbin.com/ozatid/3/edit 180 http://jsbin.com/uceciv/6/edit 181 http://jsbin.com/amaral/2/edit 182 http://www.html5rocks.com/en/tutorials/device/orientation/
|