html5回顧(二)

什麼是 Geolocation API?

HTML5 Geolocation API 用於獲得用戶的地理位置。

鑑於該特性可能侵犯用戶的隱私,除非用戶同意,否則用戶位置信息是不可用的。

注意:Geolocation(地理定位)對於擁有 GPS 的設備,比如 iPhone,地理定位更加精確。

使用地理定位

Geolocation API 的主要方法是 getCurrentPosition,它用來獲得用戶的位置。

下面是一個簡單的地理定位實例,可返回用戶位置的經度和緯度:

var x=document.getElementById("demo");
function getLocation(){
  if (navigator.geolocation){
    navigator.geolocation.getCurrentPosition(showPosition);
  }
  else{
    x.innerHTML="該瀏覽器不支持獲取地理位置。";
  }
}

function showPosition(position){
  x.innerHTML="緯度: " + position.coords.latitude + 
  "<br>經度: " + position.coords.longitude;    
}

 

實例解析:

  • 檢測是否支持地理定位。
  • 如果支持,則運行 getCurrentPosition() 方法。如果不支持,則向用戶顯示一段消息。
  • 如果 getCurrentPosition() 運行成功,則向參數 showPosition 中規定的函數返回一個 coordinates 對象。
  • showPosition() 函數獲得並顯示經度和緯度。

 

getCurrentPosition() 方法返回數據

如果 getCurrentPosition() 運行成功,則 getCurrentPosition() 方法返回對象。始終會返回 latitude、longitude 以及 accuracy 屬性。如果可用,則會返回其他下面的屬性:

  • coords.latitude:十進制數的緯度
  • coords.longitude:十進制數的經度
  • coords.accuracy:位置精度
  • coords.altitude:海拔,海平面以上以米計
  • coords.altitudeAccuracy:位置的海拔精度
  • coords.heading:方向,從正北開始以度計
  • coords.speed:速度,以米/每秒計
  • timestamp:響應的日期/時間

 HTML5 拖放(Drag 和 Drop)

拖放(Drag 和 drop)是 HTML5 標準的組成部分。

拖放是一種常見的特性,即抓取對象以後拖到另一個位置。

在 HTML5 中,拖放是標準的一部分,任何元素都能夠拖放。


</body>
</html>

設置元素爲可拖放

首先,爲了使元素可拖動,需要把 draggable 屬性設置爲 true :

<img draggable="true">

拖動什麼 - ondragstart 和 setData()

然後,規定當元素被拖動時,會發生什麼。

在上面的例子中,ondragstart 屬性調用了一個函數,drag(event),它規定了被拖動的數據。

dataTransfer.setData() 方法設置被拖數據的數據類型和值:

function drag(ev){
  ev.dataTransfer.setData("Text",ev.target.id);
}

在這個例子中,數據類型是 "Text",值是可拖動元素的 id ("drag1")。

放到何處 - ondragover

ondragover 事件規定在何處放置被拖動的數據。

默認地,無法將數據/元素放置到其他元素中。如果需要設置允許放置,我們必須阻止對元素的默認處理方式。

這要通過調用 ondragover 事件的 event.preventDefault() 方法:

event.preventDefault()

進行放置 - ondrop

當放置被拖數據時,會發生 drop 事件。

在上面的例子中,ondrop 屬性調用了一個函數,drop(event):

function drop(ev){
  ev.preventDefault();
  var data=ev.dataTransfer.getData("Text");
  ev.target.appendChild(document.getElementById(data));
}

 

SVG 介紹

什麼是 SVG?

  • SVG 指可伸縮矢量圖形 (Scalable Vector Graphics)
  • SVG 用於定義用於網絡的基於矢量的圖形
  • SVG 使用 XML 格式定義圖形
  • SVG 圖像在放大或改變尺寸的情況下其圖形質量不會有損失
  • SVG 是萬維網聯盟的標準

 在 HTML5 中,你能夠直接將 SVG 元素嵌入 HTML 頁面中。

 

SVG 圓形

要使用 SVG 繪製圖形,你首先需要創建一個 <svg> 標籤。

<svg width="1000" height="1000"></svg>

要創建一個圓形,需要添加一個 <circle> 標籤。

下面是 SVG 代碼:

<svg width="1000" height="1000">
   <circle cx="100" cy="50" r="40" fill="red" />
</svg>
  • cx和cy屬性定義圓點的x和y座標。如果省略cx和cy,圓的中心會被設置爲 (0, 0)。
  • r屬性定義圓的半徑。

運行顯示結果如下圖:

 SVG 其他形狀元素

我們來看看 SVG 一些預定義的其他形狀元素:

SVG 矩形 - <rect>

<rect> 標籤可用來創建矩形,以及矩形的變種。

<svg width="1000" height="1000">
   <rect width="400" height="200" 
     x="20" y="20" fill="red" />
</svg>

運行顯示結果如下圖:

SVG 直線 - <line>

<line> 標籤是用來創建一個直線。

<svg width="500" height="510">
    <line x1="20" y1="20" x2="300" y2="200" 
        style="stroke:#000000; stroke-linecap:round; 
        stroke-width:20"  />
</svg>

運行顯示結果如下圖:

 

SVG 曲線 - <polyline>

<polyline> 標籤是用於創建任何只有直線的形狀。

<svg width="2000" height="500">
    <polyline style="stroke-linejoin:miter; stroke:black; 
        stroke-width:12; fill: none;"
        points="100 100, 150 150, 200 100" />
</svg>

 

運行顯示結果如下圖:

 

SVG 橢圓、多邊形

SVG 橢圓 - <ellipse>

<ellipse> 標籤是用來創建一個橢圓。

橢圓與圓很相似。不同之處在於橢圓有不同的x和y半徑,而圓的x和y半徑是相同的。

<svg width="500" height="250">
   <ellipse cx="200" cy="100" rx="150" ry="70" style="fill:red" />
</svg>

運行顯示結果如下圖:

 

SVG 多邊形 - <polygon>

<polygon> 標籤用來創建含有不少於三個邊的圖形。

<svg width="1000" height="1000">
<polygon points="100 100, 200 200, 300 0" 
      style="fill: red; stroke:black;" />
</svg>

 

運行顯示結果如下圖:

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章