1. 程式人生 > >canvas入門 & HTML5 Web 儲存入門

canvas入門 & HTML5 Web 儲存入門

HTML5是HTML最新的修訂版本,2014年10月由全球資訊網聯盟(W3C)完成標準制定。

HTML5的設計目的是為了在移動裝置上支援多媒體。

最基本的:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>菜鳥教程(runoob.com)</title>

</head>

<body>

<h1>我的第一個標題</h1>

<p>我的第一個段落。</p>

</body>

</html>

canvas:

<!DOCTYPE html>

<html>

<head> 

<meta charset="utf-8"> 

<title>菜鳥教程(runoob.com)</title> 

</head>

<body>

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">

您的瀏覽器不支援 HTML5 canvas 標籤。

</canvas>

<!canvas 元素本身是沒有繪圖能力的。所有的繪製工作必須在 JavaScript 內部完成:>

<script>

var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.fillStyle="#FF0000";

ctx.fillRect(0,0,150,25);

</script>

</body>

</html>

======================

<!畫一條線:>

ctx.moveTo(0,0);

ctx.lineTo(200,100);

ctx.stroke();

=========================

<!畫一個圓>

ctx.beginPath(); ctx.arc(95,50,40,0,2*Math.PI); ctx.stroke();

=====================

<!寫幾個字>

ctx.font="30px Arial";

ctx.fillText("Hello World",10,50);

========

漸變:

  • createLinearGradient(x,y,x1,y1) - 建立線條漸變
  • createRadialGradient(x,y,r,x1,y1,r1) - 建立一個徑向/圓漸變

// 建立漸變 var grd=ctx.createLinearGradient(0,0,200,0); grd.addColorStop(0,"red"); grd.addColorStop(1,"white"); // 填充漸變 ctx.fillStyle=grd; ctx.fillRect(10,10,150,80);

===============

// 建立漸變 var grd=ctx.createRadialGradient(75,50,5,90,60,100); grd.addColorStop(0,"red"); grd.addColorStop(1,"white"); // 填充漸變 ctx.fillStyle=grd; ctx.fillRect(10,10,150,80);

=================

HTML5 Web 儲存

localStorage 和 sessionStorage 

客戶端儲存資料的兩個物件為:

  • localStorage - 用於長久儲存整個網站的資料,儲存的資料沒有過期時間,直到手動去除。
  • sessionStorage - 用於臨時儲存同一視窗(或標籤頁)的資料,在關閉視窗或標籤頁之後將會刪除這些資料。

在使用 web 儲存前,應檢查瀏覽器是否支援 localStorage 和sessionStorage:

if(typeof(Storage)!=="undefined") { // 是的! 支援 localStorage sessionStorage 物件! localStorage.sitename="菜鳥教程";

document.getElementById("result").innerHTML="網站名:" + localStorage.sitename; } else { // 抱歉! 不支援 web 儲存。 }

解析:

  • 使用 key="sitename" 和 value="菜鳥教程" 建立一個 localStorage 鍵/值對。
  • 檢索鍵值為"sitename" 的值然後將資料插入 id="result"的元素中。

移除 localStorage 中的 ""sitename" :

localStorage.removeItem(""sitename");

==========

Eg:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"> 

<title>菜鳥教程(runoob.com)</title> 

<script>

function clickCounter()

{

if(typeof(Storage)!=="undefined")

{

if (localStorage.clickcount)

{

localStorage.clickcount=Number(localStorage.clickcount)+1;

}

else

{

localStorage.clickcount=1;

}

document.getElementById("result").innerHTML=" 你已經點選了按鈕 " + localStorage.clickcount + " 次 ";

}

else

{

document.getElementById("result").innerHTML="對不起,您的瀏覽器不支援 web 儲存。";

}

}

</script>

</head>

<body>

<p><button onclick="clickCounter()" type="button">點我!</button></p>

<div id="result"></div>

<p>點選該按鈕檢視計數器的增加。</p>

<p>關閉瀏覽器選項卡(或視窗),重新開啟此頁面,計數器將繼續計數(不是重置)。</p>

</body>

</html>

======

localStorage與 sessionStorage,可使用的API都相同,常用的有如下幾個(以localStorage為例):

  • 儲存資料:localStorage.setItem(key,value);
  • 讀取資料:localStorage.getItem(key);
  • 刪除單個數據:localStorage.removeItem(key);
  • 刪除所有資料:localStorage.clear();
  • 得到某個索引的key:localStorage.key(index);