SlideShare a Scribd company logo
第二节课:html5 – web开发步入新阶段
1991	
  HTML	
   1996	
  CSS	
  1	
  +	
  Javascript	
   1998	
  CSS	
  2	
   2002	
  Tableless	
   2009	
  HTML5	
  

91	
              94	
        96	
   97	
   98	
       00	
            02	
             05	
                09	
  

           1994	
  HTML	
  2	
     1997	
  HTML	
  4	
          2000	
  XHTML	
  1	
   2005	
  AJAX	
  
第二节课:html5 – web开发步入新阶段
ì 
第二节课:html5 – web开发步入新阶段
<h1>HTML5</h1>	
  
<h2>Web                              </h2>	
  
<p>......</p>	
  

<hgroup>	
  
	
  	
  	
  	
  <h1>HTML5</h1>	
  
	
  	
  	
  	
  <h2>Web                   </h2>	
  
</hgroup>	
  
<p>......</p>	
  
<article>	
  
	
  	
  <header>	
  
	
  	
  	
  	
  <h1>        </h1>	
  
	
  	
  </header>	
  
	
  	
  <p>             </p>	
  

	
  	
  <footer>	
  
	
  	
  	
  	
  <a	
  href="?comments=1">   </a>	
  	
  	
  
	
  	
  </footer>	
  
</article>	
  
<p>                            JS             </p>	
  

<figure	
  id="l4”>	
  

	
  	
  <figcaption>      14        </figcaption>	
  

	
  	
  <pre><code>document.createElement("div");</code></pre>	
  

</figure>	
  
第二节课:html5 – web开发步入新阶段
第二节课:html5 – web开发步入新阶段
<meter	
  min="0"	
  max="100"	
  low="40"	
  high="90"	
  optimum="100"	
  
value="91">A+</meter>	
  

	
  

<progress>            </progress>	
  

	
  

<progress	
  value="75"	
  max="100”>        75%</progress>	
  
<menu>	
  
	
  	
  <command	
  type="command">       ...</command>	
  
</menu>	
  

<details>	
  
	
  	
  <summary>fileInfo</summary>	
  
	
  	
  <summary>metadata</summary>	
  
	
  	
  <summary>camera	
  data</summary>	
  
</details>	
  
<input	
  type="email"	
  value="some@email.com"	
  />	
  

	
  

<input	
  type="date"	
  min="2010-­‐08-­‐14"	
  max="2011-­‐08-­‐14"	
  
value="2010-­‐08-­‐14"/>	
  

	
  

<input	
  type="range"	
  min="0"	
  max="50"	
  value="10"	
  />	
  

	
  

<input	
  type="search"	
  results="10"	
  placeholder="Search..."	
  />	
  
<input	
  type="tel"	
  	
  placeholder="(555)	
  555-­‐5555"	
  

	
  	
  	
  	
  	
  	
  	
  	
  	
  pattern="^(?d{3})?[-­‐s]d{3}[-­‐s]d{4}.*?$"	
  />	
  

	
  

<input	
  type="color"	
  placeholder="e.g.	
  #bbbbbb"	
  />	
  

	
  

<input	
  type="number"	
  step="1"	
  min="-­‐5"	
  max="10"	
  value="0"	
  />	
  
<style>	
  

	
  	
  [required]	
  {	
  

	
  	
  	
  	
  border-­‐color:	
  #88a;	
  

	
  	
  	
  	
  -­‐webkit-­‐box-­‐shadow:	
  0	
  0	
  3px	
  rgba(0,	
  0,	
  255,	
  .5);	
  
	
  	
  }	
  

	
  	
  :invalid	
  {	
  

	
  	
  	
  	
  border-­‐color:	
  #e88;	
  

	
  	
  	
  	
  -­‐webkit-­‐box-­‐shadow:	
  0	
  0	
  5px	
  rgba(255,	
  0,	
  0,	
  .8);	
  

	
  	
  }	
  

</style>	
  
 	
  	
  	
  	
  	
  	
  	
  	
  type="email"	
     	
  	
  	
  	
  	
  	
  	
  	
  type="tel"	
  
第二节课:html5 – web开发步入新阶段
第二节课:html5 – web开发步入新阶段
ì 

ì 

ì 
<input	
  type="text"	
  id="name"	
  />	
  

sessionStorage.setItem("username",	
  document.getElementById
("name").value)	
  

	
  

<!-­‐-­‐	
  on	
  next	
  page	
  -­‐-­‐>	
  

alert(sessionStorage.getItem("username"))	
  
localStorage.setItem('lng',	
  map.getCenter().lng);	
  

localStorage.setItem('lat',	
  map.getCenter().lat);	
  

localStorage.setItem('mapZoom',	
  map.getZoom());	
  
var	
  db	
  =	
  window.openDatabase('MyDB',	
  '1.0',	
  'my	
  database',	
  5	
  
*	
  1024	
  *	
  1024);	
  

db.transaction(function(tx){	
  

	
  	
  tx.executeSql("CREATE	
  TABLE	
  IF	
  NOT	
  EXISTS	
  test	
  (id	
  unique,	
  
text)");	
  

	
  	
  tx.executeSql("INSERT	
  INTO	
  test	
  (id,	
  text)	
  VALUES	
  (1,	
  'my	
  
data')");	
  

	
  	
  tx.executeSql("SELECT	
  *	
  FROM	
  test",	
  [],	
  successCallback);	
  

});	
  
ì 
var	
  idbReq	
  =	
  window.indexedDB.open("My	
  Database");	
  

idbReq.onsuccess	
  =	
  function(event){	
  

	
  	
  	
  	
  var	
  db	
  =	
  event.srcElement.result;	
  

	
  	
  	
  	
  //	
  do	
  something	
  here	
  

}	
  
<html	
  manifest="cache.appcache">	
  

	
  



CACHE	
  MANIFEST	
  
index.html	
  
style.css	
  
images/logo.png	
  
scripts/main.js	
  
第二节课:html5 – web开发步入新阶段
ì 

ì 
if	
  (navigator.geolocation)	
  {	
  

	
  	
  navigator.geolocation.getCurrentPosition(function(pos){	
  

	
  	
  	
  	
  alert(pos.coords.latitude	
  +	
  ','	
  +	
  pos.coords.longitude);	
  

	
  	
  })	
  

}	
  
第二节课:html5 – web开发步入新阶段
span.addEventListener("dragstart",	
  function(e){	
  

	
  	
  e.dataTransfer.setData("text",	
  this.innerHTML);	
  

});	
  

	
  

drop.addEventListener('drop',	
  function(e){	
  

	
  	
  this.innerHTML	
  =	
  e.dataTransfer.getData('text');	
  

},	
  false);	
  
holder.ondrop	
  =	
  function	
  (e)	
  {	
  
	
  	
  e.preventDefault();	
  
	
  
	
  	
  var	
  file	
  =	
  e.dataTransfer.files[0],	
  
	
  	
  	
  	
  	
  	
  reader	
  =	
  new	
  FileReader();	
  
	
  	
  reader.onload	
  =	
  function	
  (event)	
  {	
  
	
  	
  	
  	
  holder.style.background	
  =	
  'url('	
  +	
  event.target.result	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  +	
  ')	
  no-­‐repeat	
  center';	
  
	
  	
  };	
  
	
  	
  reader.readAsDataURL(file);	
  
	
  
	
  	
  return	
  false;	
  
};	
  
	
  
holder.ondrop	
  =	
  function	
  (e)	
  {	
  
	
  	
  e.preventDefault();	
  
	
  
	
  	
  var	
  file	
  =	
  e.dataTransfer.files[0],	
  
	
  	
  	
  	
  	
  	
  reader	
  =	
  new	
  FileReader();	
  
	
  	
  reader.onload	
  =	
  function	
  (event)	
  {	
  
	
  	
  	
  	
  holder.innerHTML	
  =	
  event.target.result;	
  
	
  	
  };	
  
	
  	
  reader.readAsText(file);	
  
	
  
	
  	
  return	
  false;	
  
};	
  
	
  
第二节课:html5 – web开发步入新阶段
<a	
  href="pic.png"	
  id="dragout"	
  draggable="true"	
  data-­‐
downloadurl="application/octet-­‐stream:pic.png:URI">A	
  
Picture</a>	
  

	
  

var	
  file	
  =	
  document.getElementById('dragout');	
  
file.ondragstart	
  =	
  function(e){	
  
	
  	
  e.dataTransfer.setData('DownloadURL',	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  file.dataset.downloadurl);	
  
}	
  
	
  
window.addEventListener("deviceorientation",	
  function(e){	
  

	
  	
  var	
  a	
  =	
  e.alpha;	
  

	
  	
  var	
  b	
  =	
  e.beta;	
  

	
  	
  var	
  g	
  =	
  e.gamma;	
  

},	
  false);	
  
<input	
  type="text"	
  x-­‐webkit-­‐speech	
  />	
  
第二节课:html5 – web开发步入新阶段
ì 
ì 

ì 

ì 
var	
  socket	
  =	
  new	
  WebSocket(host);	
  

socket.send(message);	
  

socket.onmessage	
  =	
  function(message){alert(message.data);}	
  
第二节课:html5 – web开发步入新阶段
ì 

ì 
var	
  worker	
  =	
  new	
  Worker('worker.js');	
  
worker.onmessage	
  =	
  function(event){	
  
	
  	
  document.getElementById('result').text	
  =	
  event.data;	
  
};	
  


	
  
var	
  n	
  =	
  1;	
  	
  
search:	
  while(true)	
  {	
  
	
  	
  n	
  +=	
  1;	
  
	
  	
  for	
  (var	
  i	
  =	
  2;	
  i	
  <=	
  Math.sqrt(n);	
  i	
  +=	
  1)	
  {	
  
	
  	
  	
  	
  if	
  (n	
  %	
  i	
  ==	
  0)	
  continue	
  search;	
  
	
  	
  }	
  
	
  	
  postMessage(n);	
  	
  
}	
  
function	
  RequestPermission	
  (callback)	
  {	
  
	
  	
  window.webkitNotifications.requestPermission(callback);	
  
}	
  
	
  
function	
  showNotification(){	
  
	
  	
  if	
  (window.webkitNotifications.checkPermission()	
  >	
  0)	
  {	
  
	
  	
  	
  	
  RequestPermission(showNotification);	
  
	
  	
  }	
  else	
  {	
  	
  
	
  	
  	
  	
  window.webkitNotifications.createNotification
("header.png",	
  "Title",	
  "Body").show();	
  
	
  	
  }	
  
}	
  
 




	
  
第二节课:html5 – web开发步入新阶段
<audio	
  />	
     <video	
  />	
  
<object	
  type="application/x-­‐shockwave-­‐flash"	
  data="http://
static.youku.com/v1.0.0161/v/swf/player.swf"	
  
id="movie_player"	
  height="100%"	
  width="100%”>	
  
<param	
  name="allowFullScreen"	
  value="true">	
  
<param	
  name="wmode"	
  value="opaque">	
  
<param	
  name="allowscriptaccess"	
  value="always">	
  
<param	
  name="flashvars"	
  
value="VideoIDS=XMjczNzc3NDI4&amp;ShowId=0&amp;Cp=0&amp;Ligh
t=on&amp;THX=off&amp;Tid=0&amp;isAutoPlay=true&amp;Version=/
v1.0.0668&amp;show_ce=1&amp;winType=interior&amp;Type=Folder
&amp;Fid=6190074&amp;Pt=0&amp;Ob=1">	
  
<param	
  name="movie"	
  value=
http://static.youku.com/v1.0.0161/v/swf/player.swf>	
  
</object>	
  
<audio	
  src="vincent.mp3"	
  controls="controls"	
  />	
  
format	
           IE9	
     Firefox	
  3.5	
   Opera	
  10.5	
   Chrome	
  3	
     Safari	
  3	
  
Ogg	
  Vorbis	
   No	
       Yes	
             Yes	
              Yes	
             No	
  
MP3	
              Yes	
     No	
              No	
               Yes	
             Yes	
  
WAV	
              No	
      Yes	
             Yes	
              No	
              Yes	
  
<video	
  src="mapapi.mp4"	
  controls="controls"	
  />	
  
format	
     IE	
       Firefox	
     Opera	
     Chrome	
     Safari	
  
Ogg	
        No	
       3.5+	
        10.5+	
     5.0+	
       No	
  
MP4	
        9.0+	
     No	
          No	
        5.0+	
       3.0+	
  
WebM	
       No	
       4.0+	
        10.6+	
     6.0+	
       No	
  
第二节课:html5 – web开发步入新阶段
ì 

ì 
var	
  canvasContext	
  =	
  document.getElementById
("canvas").getContext("2d");	
  

canvasContext.fillRect(250,	
  25,	
  150,	
  100);	
  

	
  	
  	
  

canvasContext.beginPath();	
  

canvasContext.arc(450,	
  110,	
  100,	
  Math.PI	
  *	
  1/2,	
  Math.PI	
  *	
  3/2);	
  

canvasContext.lineWidth	
  =	
  15;	
  

canvasContext.lineCap	
  =	
  'round';	
  

canvasContext.strokeStyle	
  =	
  'rgba(255,	
  127,	
  0,	
  0.5)';	
  

canvasContext.stroke();	
  
第二节课:html5 – web开发步入新阶段
第二节课:html5 – web开发步入新阶段
第二节课:html5 – web开发步入新阶段
第二节课:html5 – web开发步入新阶段
<body>	
  
	
  	
  <svg>	
  
	
  	
  	
  	
  <circle	
  id="myCircle"	
  class="important"	
  cx="50%"	
  
cy="50%"	
  r="100	
  fill="url(#myGradient)	
  onmousedown="alert
('hello');"/>	
  
	
  	
  </svg>	
  
</body>	
  
var	
  context	
  =	
  canvas.getContext("experimental-­‐webgl");	
  
第二节课:html5 – web开发步入新阶段
第二节课:html5 – web开发步入新阶段
More	
  WebGL	
  Demos	
  at	
  
hNp://www.chromeexperiments.com/	
  
第二节课:html5 – web开发步入新阶段
XMLHttpRequest	
  2

ì 

ì 

ì 

ì 
第二节课:html5 – web开发步入新阶段
.row:nth-­‐child(even){	
  

	
  	
  background:	
  #dde;	
  

}	
  

.row:nth-­‐child(odd){	
  

	
  	
  background:	
  white;	
  

}	
  
button:not([DISABLED])	
  

*:not(span)	
  

:enabled	
  

:required	
  

	
  
@font-­‐face	
  {	
  
	
  	
  font-­‐family:	
  Gentium;	
  	
  
	
  	
  src:	
  url(http://example.com/fonts/Gentium.ttf);	
  
}	
  	
  

p	
  {	
  font-­‐family:	
  Gentium,	
  serif;	
  }	
  
div	
  {	
  

	
  	
  -­‐webkit-­‐text-­‐fill-­‐color:	
  white;	
  

	
  	
  -­‐webkit-­‐text-­‐stroke-­‐color:	
  black;	
  

	
  	
  -­‐webkit-­‐text-­‐stroke-­‐width:	
  1px;	
  	
  

}	
  
Vendor	
  Prefixes	
  

ì  -­‐webkit-­‐xxxx	
  

ì  -­‐moz-­‐xxxx	
  

ì  -­‐o-­‐xxxx	
  
Vendor	
  Prefixes	
  
div	
  {	
  

	
  	
  -­‐webkit-­‐box-­‐shadow:	
  1 x	
  1px	
  5px	
  #888	
  

	
  	
  -­‐moz-­‐box-­‐shadow:	
  1px	
  1px	
  5px	
  #888;	
  

	
  	
  box-­‐shadow:	
  1px	
  1px	
  5px	
  #888;	
  

}	
  
color:	
  rgba(255,	
  0,	
  0,	
  0.75);	
  

background:	
  rgba(0,	
  0,	
  255,	
  0.25);	
  
border-­‐radius:	
  10px	
  

background-­‐image:	
  -­‐moz-­‐linear-­‐gradient(#fff,	
  #000);	
  

background-­‐image:	
  -­‐moz-­‐linear-­‐gradient(30deg,	
  #000,	
  #fff	
  
75%,	
  #000);	
  
第二节课:html5 – web开发步入新阶段
第二节课:html5 – web开发步入新阶段
text-­‐shadow:	
  4px	
  4px	
  1px	
  #aaa;	
  

box-­‐shadow:	
  1px	
  1px	
  2px	
  #fff;	
  

box-­‐shadow:	
  inset	
  0	
  0	
  10px	
  #000;	
  
.left{background:	
  red;left:0px}	
  

.right{background:	
  green;left:1000px}	
  

#myDiv	
  {	
  

	
  	
  -­‐webkit-­‐transition:	
  left	
  1s	
  ease-­‐in-­‐out,	
  background	
  1s	
  
ease-­‐in-­‐out;	
  

}	
  
-­‐webkit-­‐transform:	
  rotateY(45deg);	
  

-­‐webkit-­‐transform:	
  scaleX(2);	
  

-­‐webkit-­‐transform:	
  translate3d(0,	
  0,	
  90deg);	
  
@-­‐webkit-­‐keyframes	
  movingbox{	
  

	
  	
  0%{left:90%;}	
  

	
  	
  50%{left:10%;}	
  	
  

	
  	
  100%{left:90%;}	
  	
  

}	
  

	
  

.box2{	
  -­‐webkit-­‐animation:movingbox	
  5s	
  infinite;	
  }	
  
hNp://dev.w3.org/html5/spec/Overview.html	
  
hNp://www.html5rocks.com/en/	
  
hNp://diveintohtml5.org/	
  
hNp://www.sitepoint.com/tag/html5/	
  
hNp://www.css3.info/	
  
	
  
	
  
	
  
Q&A	
  

More Related Content

PDF
Get more votes!
PPTX
Service Workers
PDF
Jquery Framework
PDF
jQuery sans jQuery
PDF
Skaters and BMXers from all over the U.S. descend on Grant Park
PDF
Prototype UI
DOC
Javascript技巧参考大全
PDF
A slew of AACM 50th anniversary celebrations this weekend
Get more votes!
Service Workers
Jquery Framework
jQuery sans jQuery
Skaters and BMXers from all over the U.S. descend on Grant Park
Prototype UI
Javascript技巧参考大全
A slew of AACM 50th anniversary celebrations this weekend

What's hot (19)

PDF
PPT
jQuery & jQuery Mobile
PDF
Here's the Downtown Sound lineup for 2015
PDF
Best Fried Chicken
PDF
Web components v1 intro
PPTX
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
PDF
PPTX
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
PDF
Sis quiz
PPTX
Jquery ui, ajax
PDF
DOCX
Dennis zapana perez
PDF
Get more votes!
PDF
Chief Keef's hologram can't catch a break, and it's a win for Keef
PDF
PPTX
Jquery Introduction Hebrew
DOCX
Crud secara simultan ala php myadmin
PDF
Best gourmet market
jQuery & jQuery Mobile
Here's the Downtown Sound lineup for 2015
Best Fried Chicken
Web components v1 intro
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
EWD 3トレーニングコース#13 全てをひとつにまとめてewd-xpressで稼働させてみる
Sis quiz
Jquery ui, ajax
Dennis zapana perez
Get more votes!
Chief Keef's hologram can't catch a break, and it's a win for Keef
Jquery Introduction Hebrew
Crud secara simultan ala php myadmin
Best gourmet market
Ad

Viewers also liked (17)

PDF
第二节课:样式之美 web前端课程体系之css
PDF
Is661 medical terms definitions
PPTX
The new dynamics of poverty and the role of science in poverty alleviation
PPTX
Tracy T Brittain Dec 2010 Samples
PPSX
SutraLite Presentaion
PPTX
Social Media & Dynamic Web Content
PDF
PAC Fast Track Implementation Program
PDF
第三课:JS-行为控制语言+js架构思想
PDF
第一节课:前端的美好时代
PDF
第一节课:web前端技术程序员编程能力成长之路
PDF
第一节课:授课计划和项目要求
PPTX
第四节课:百度地图api
PPT
第四节课:web安全2.0
PPTX
Smart Health Newsletter Sample (Send)
ODP
Pattern: Activity stream
PDF
Free Up Your Time For Strategic, Value-Added Activity
PDF
PAC Webinar - Kinross Strikes Gold
第二节课:样式之美 web前端课程体系之css
Is661 medical terms definitions
The new dynamics of poverty and the role of science in poverty alleviation
Tracy T Brittain Dec 2010 Samples
SutraLite Presentaion
Social Media & Dynamic Web Content
PAC Fast Track Implementation Program
第三课:JS-行为控制语言+js架构思想
第一节课:前端的美好时代
第一节课:web前端技术程序员编程能力成长之路
第一节课:授课计划和项目要求
第四节课:百度地图api
第四节课:web安全2.0
Smart Health Newsletter Sample (Send)
Pattern: Activity stream
Free Up Your Time For Strategic, Value-Added Activity
PAC Webinar - Kinross Strikes Gold
Ad

第二节课:html5 – web开发步入新阶段

  • 2. 1991  HTML   1996  CSS  1  +  Javascript   1998  CSS  2   2002  Tableless   2009  HTML5   91   94   96   97   98   00   02   05   09   1994  HTML  2   1997  HTML  4   2000  XHTML  1   2005  AJAX  
  • 6. <h1>HTML5</h1>   <h2>Web </h2>   <p>......</p>   <hgroup>          <h1>HTML5</h1>          <h2>Web </h2>   </hgroup>   <p>......</p>  
  • 7. <article>      <header>          <h1> </h1>      </header>      <p> </p>      <footer>          <a  href="?comments=1"> </a>          </footer>   </article>  
  • 8. <p> JS </p>   <figure  id="l4”>      <figcaption> 14 </figcaption>      <pre><code>document.createElement("div");</code></pre>   </figure>  
  • 11. <meter  min="0"  max="100"  low="40"  high="90"  optimum="100"   value="91">A+</meter>     <progress> </progress>     <progress  value="75"  max="100”> 75%</progress>  
  • 12. <menu>      <command  type="command"> ...</command>   </menu>   <details>      <summary>fileInfo</summary>      <summary>metadata</summary>      <summary>camera  data</summary>   </details>  
  • 13. <input  type="email"  value="[email protected]"  />     <input  type="date"  min="2010-­‐08-­‐14"  max="2011-­‐08-­‐14"   value="2010-­‐08-­‐14"/>     <input  type="range"  min="0"  max="50"  value="10"  />     <input  type="search"  results="10"  placeholder="Search..."  />  
  • 14. <input  type="tel"    placeholder="(555)  555-­‐5555"                    pattern="^(?d{3})?[-­‐s]d{3}[-­‐s]d{4}.*?$"  />     <input  type="color"  placeholder="e.g.  #bbbbbb"  />     <input  type="number"  step="1"  min="-­‐5"  max="10"  value="0"  />  
  • 15. <style>      [required]  {          border-­‐color:  #88a;          -­‐webkit-­‐box-­‐shadow:  0  0  3px  rgba(0,  0,  255,  .5);      }      :invalid  {          border-­‐color:  #e88;          -­‐webkit-­‐box-­‐shadow:  0  0  5px  rgba(255,  0,  0,  .8);      }   </style>  
  • 16.                  type="email"                  type="tel"  
  • 20. <input  type="text"  id="name"  />   sessionStorage.setItem("username",  document.getElementById ("name").value)     <!-­‐-­‐  on  next  page  -­‐-­‐>   alert(sessionStorage.getItem("username"))  
  • 21. localStorage.setItem('lng',  map.getCenter().lng);   localStorage.setItem('lat',  map.getCenter().lat);   localStorage.setItem('mapZoom',  map.getZoom());  
  • 22. var  db  =  window.openDatabase('MyDB',  '1.0',  'my  database',  5   *  1024  *  1024);   db.transaction(function(tx){      tx.executeSql("CREATE  TABLE  IF  NOT  EXISTS  test  (id  unique,   text)");      tx.executeSql("INSERT  INTO  test  (id,  text)  VALUES  (1,  'my   data')");      tx.executeSql("SELECT  *  FROM  test",  [],  successCallback);   });  
  • 24. var  idbReq  =  window.indexedDB.open("My  Database");   idbReq.onsuccess  =  function(event){          var  db  =  event.srcElement.result;          //  do  something  here   }  
  • 25. <html  manifest="cache.appcache">     CACHE  MANIFEST   index.html   style.css   images/logo.png   scripts/main.js  
  • 28. if  (navigator.geolocation)  {      navigator.geolocation.getCurrentPosition(function(pos){          alert(pos.coords.latitude  +  ','  +  pos.coords.longitude);      })   }  
  • 30. span.addEventListener("dragstart",  function(e){      e.dataTransfer.setData("text",  this.innerHTML);   });     drop.addEventListener('drop',  function(e){      this.innerHTML  =  e.dataTransfer.getData('text');   },  false);  
  • 31. holder.ondrop  =  function  (e)  {      e.preventDefault();        var  file  =  e.dataTransfer.files[0],              reader  =  new  FileReader();      reader.onload  =  function  (event)  {          holder.style.background  =  'url('  +  event.target.result                                                                +  ')  no-­‐repeat  center';      };      reader.readAsDataURL(file);        return  false;   };    
  • 32. holder.ondrop  =  function  (e)  {      e.preventDefault();        var  file  =  e.dataTransfer.files[0],              reader  =  new  FileReader();      reader.onload  =  function  (event)  {          holder.innerHTML  =  event.target.result;      };      reader.readAsText(file);        return  false;   };    
  • 34. <a  href="pic.png"  id="dragout"  draggable="true"  data-­‐ downloadurl="application/octet-­‐stream:pic.png:URI">A   Picture</a>     var  file  =  document.getElementById('dragout');   file.ondragstart  =  function(e){      e.dataTransfer.setData('DownloadURL',                                                                  file.dataset.downloadurl);   }    
  • 35. window.addEventListener("deviceorientation",  function(e){      var  a  =  e.alpha;      var  b  =  e.beta;      var  g  =  e.gamma;   },  false);  
  • 40. var  socket  =  new  WebSocket(host);   socket.send(message);   socket.onmessage  =  function(message){alert(message.data);}  
  • 43. var  worker  =  new  Worker('worker.js');   worker.onmessage  =  function(event){      document.getElementById('result').text  =  event.data;   };     var  n  =  1;     search:  while(true)  {      n  +=  1;      for  (var  i  =  2;  i  <=  Math.sqrt(n);  i  +=  1)  {          if  (n  %  i  ==  0)  continue  search;      }      postMessage(n);     }  
  • 44. function  RequestPermission  (callback)  {      window.webkitNotifications.requestPermission(callback);   }     function  showNotification(){      if  (window.webkitNotifications.checkPermission()  >  0)  {          RequestPermission(showNotification);      }  else  {            window.webkitNotifications.createNotification ("header.png",  "Title",  "Body").show();      }   }  
  • 45.    
  • 47. <audio  />   <video  />  
  • 48. <object  type="application/x-­‐shockwave-­‐flash"  data="http:// static.youku.com/v1.0.0161/v/swf/player.swf"   id="movie_player"  height="100%"  width="100%”>   <param  name="allowFullScreen"  value="true">   <param  name="wmode"  value="opaque">   <param  name="allowscriptaccess"  value="always">   <param  name="flashvars"   value="VideoIDS=XMjczNzc3NDI4&amp;ShowId=0&amp;Cp=0&amp;Ligh t=on&amp;THX=off&amp;Tid=0&amp;isAutoPlay=true&amp;Version=/ v1.0.0668&amp;show_ce=1&amp;winType=interior&amp;Type=Folder &amp;Fid=6190074&amp;Pt=0&amp;Ob=1">   <param  name="movie"  value= http://static.youku.com/v1.0.0161/v/swf/player.swf>   </object>  
  • 50. format   IE9   Firefox  3.5   Opera  10.5   Chrome  3   Safari  3   Ogg  Vorbis   No   Yes   Yes   Yes   No   MP3   Yes   No   No   Yes   Yes   WAV   No   Yes   Yes   No   Yes  
  • 52. format   IE   Firefox   Opera   Chrome   Safari   Ogg   No   3.5+   10.5+   5.0+   No   MP4   9.0+   No   No   5.0+   3.0+   WebM   No   4.0+   10.6+   6.0+   No  
  • 55. var  canvasContext  =  document.getElementById ("canvas").getContext("2d");   canvasContext.fillRect(250,  25,  150,  100);         canvasContext.beginPath();   canvasContext.arc(450,  110,  100,  Math.PI  *  1/2,  Math.PI  *  3/2);   canvasContext.lineWidth  =  15;   canvasContext.lineCap  =  'round';   canvasContext.strokeStyle  =  'rgba(255,  127,  0,  0.5)';   canvasContext.stroke();  
  • 60. <body>      <svg>          <circle  id="myCircle"  class="important"  cx="50%"   cy="50%"  r="100  fill="url(#myGradient)  onmousedown="alert ('hello');"/>      </svg>   </body>  
  • 61. var  context  =  canvas.getContext("experimental-­‐webgl");  
  • 64. More  WebGL  Demos  at   hNp://www.chromeexperiments.com/  
  • 68. .row:nth-­‐child(even){      background:  #dde;   }   .row:nth-­‐child(odd){      background:  white;   }  
  • 70. @font-­‐face  {      font-­‐family:  Gentium;        src:  url(http://example.com/fonts/Gentium.ttf);   }     p  {  font-­‐family:  Gentium,  serif;  }  
  • 71. div  {      -­‐webkit-­‐text-­‐fill-­‐color:  white;      -­‐webkit-­‐text-­‐stroke-­‐color:  black;      -­‐webkit-­‐text-­‐stroke-­‐width:  1px;     }  
  • 72. Vendor  Prefixes   ì  -­‐webkit-­‐xxxx   ì  -­‐moz-­‐xxxx   ì  -­‐o-­‐xxxx  
  • 73. Vendor  Prefixes   div  {      -­‐webkit-­‐box-­‐shadow:  1 x  1px  5px  #888      -­‐moz-­‐box-­‐shadow:  1px  1px  5px  #888;      box-­‐shadow:  1px  1px  5px  #888;   }  
  • 74. color:  rgba(255,  0,  0,  0.75);   background:  rgba(0,  0,  255,  0.25);  
  • 75. border-­‐radius:  10px   background-­‐image:  -­‐moz-­‐linear-­‐gradient(#fff,  #000);   background-­‐image:  -­‐moz-­‐linear-­‐gradient(30deg,  #000,  #fff   75%,  #000);  
  • 78. text-­‐shadow:  4px  4px  1px  #aaa;   box-­‐shadow:  1px  1px  2px  #fff;   box-­‐shadow:  inset  0  0  10px  #000;  
  • 79. .left{background:  red;left:0px}   .right{background:  green;left:1000px}   #myDiv  {      -­‐webkit-­‐transition:  left  1s  ease-­‐in-­‐out,  background  1s   ease-­‐in-­‐out;   }  
  • 80. -­‐webkit-­‐transform:  rotateY(45deg);   -­‐webkit-­‐transform:  scaleX(2);   -­‐webkit-­‐transform:  translate3d(0,  0,  90deg);  
  • 81. @-­‐webkit-­‐keyframes  movingbox{      0%{left:90%;}      50%{left:10%;}        100%{left:90%;}     }     .box2{  -­‐webkit-­‐animation:movingbox  5s  infinite;  }  
  • 82. hNp://dev.w3.org/html5/spec/Overview.html   hNp://www.html5rocks.com/en/   hNp://diveintohtml5.org/   hNp://www.sitepoint.com/tag/html5/   hNp://www.css3.info/