溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HTML5學(xué)習(xí)第二節(jié) HTML5新元素的介紹

發(fā)布時(shí)間:2020-06-10 19:04:06 來源:網(wǎng)絡(luò) 閱讀:787 作者:nnds74939347 欄目:移動(dòng)開發(fā)

首先要檢查你的瀏覽器是否支持HTML5,主要的JS代碼如下:

function check_html5()
{
if(!!document.createElement('video').canPlayType)
  {
  var vidTest=document.createElement("video");
  oggTest=vidTest.canPlayType('video/ogg; codecs="theora, vorbis"');
  if (!oggTest)
    {
    h364Test=vidTest.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');
    if (!h364Test)
      {
      document.getElementById("checkVideoResult").innerHTML="Sorry. No video support."
      }
    else
      {
      if (h364Test=="probably")
        {
        document.getElementById("checkVideoResult").innerHTML="Yes! Full support!";
        }
      else
        {
        document.getElementById("checkVideoResult").innerHTML="Well. Some support.";
        }
      }
    }
  else
    {
    if (oggTest=="probably")
      {
      document.getElementById("checkVideoResult").innerHTML="Yes! Full support!";
      }
    else
      {
      document.getElementById("checkVideoResult").innerHTML="Well. Some support.";
      }
    }
  }
else
  {
  document.getElementById("checkVideoResult").innerHTML="Sorry. No video support."
  }
}

一、HTML5下的視頻引用方式

通過以上的檢查之后,筆者用火狐測試了這個(gè)功能。視頻的元素是 video ,video 元素支持兩種格式的視頻:

 IE 8Firefox 3.5Opera 10.5Chrome 3.0Safari 3.0
Ogg √√√ 
MPEG 4   √√

其中 ogg 是指帶有 Thedora 視頻編碼和 Vorbis 音頻編碼的 Ogg 文件

MPEG4 是指 帶有 H.264 視頻編碼和 AAC 音頻編碼的 MPEG 4 文件

代碼如下:

<video width="320" height="240" controls="controls">
  <source src="movie.ogg" type="video/ogg">
  <source src="movie.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

以上代碼的意思是:引用一段視頻,寬320 高240  controls意思是帶有視頻控制 source 是視頻地址,video元素允許有多個(gè)source元素,瀏覽器選擇自己識(shí)別的第一個(gè)視頻格式

video元素屬性如下:

屬性描述
autoplayautoplay如果出現(xiàn)該屬性,則視頻在就緒后馬上播放。
controlscontrols如果出現(xiàn)該屬性,則向用戶顯示控件,比如播放按鈕。
heightpixels設(shè)置視頻播放器的高度。
looploop如果出現(xiàn)該屬性,則當(dāng)媒介文件完成播放后再次開始播放。
preloadpreload

如果出現(xiàn)該屬性,則視頻在頁面加載時(shí)進(jìn)行加載,并預(yù)備播放。

如果使用 "autoplay",則忽略該屬性。

srcurl要播放的視頻的 URL。
widthpixels設(shè)置視頻播放器的寬度。

剩余這些屬性讀者可以自己測試看看,注意選擇一個(gè)支持性好的瀏覽器測試哦。

 

二、HTML5下的音頻

至目前為止網(wǎng)上大多數(shù)的音頻播放器仍然是FLASH,在HTML5中可以用audio元素來代替它,audio 元素能夠播放聲音文件或者音頻流。audio支持的音頻格式如下:

 IE 8Firefox 3.5Opera 10.5Chrome 3.0Safari 3.0
Ogg Vorbis &radic;&radic;&radic; 
MP3   &radic;&radic;
Wav &radic;&radic; &radic;

在頁面中引用方式如下:

<audio controls="controls">
  <source src="song.ogg" type="audio/ogg">
  <source src="song.mp3" type="audio/mpeg">
Your browser does not support the audio tag.
</audio>

大家可以看到和視頻的引用方式?jīng)]有太大的區(qū)別,這個(gè)就不用解釋了吧,audio元素的其他屬性如下:

屬性描述
autoplayautoplay如果出現(xiàn)該屬性,則音頻在就緒后馬上播放。
controlscontrols如果出現(xiàn)該屬性,則向用戶顯示控件,比如播放按鈕。
looploop如果出現(xiàn)該屬性,則每當(dāng)音頻結(jié)束時(shí)重新開始播放。
preloadpreload

如果出現(xiàn)該屬性,則音頻在頁面加載時(shí)進(jìn)行加載,并預(yù)備播放。

如果使用 "autoplay",則忽略該屬性。

srcurl要播放的音頻的 URL。

三、HTML5下的繪制圖形

在HTML5中可以使用 canvas 結(jié)合 javascript  繪制圖形,示例代碼如下:

<canvas id="myCanvas" width="200" height="100"></canvas>

這段代碼本身并不能畫圖,需要通過以下的JS代碼來畫圖

<script type="text/javascript">
var c=document.getElementById("myCanvas");//獲取ID為myCanvas的元素
var cxt=c.getContext("2d");//創(chuàng)建context對象,context對象是內(nèi)建的 HTML5 對象,擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。
cxt.fillStyle="#FF0000";//設(shè)置context對象的fillStyle屬性,即是背景顏色
cxt.fillRect(0,0,150,75);//調(diào)用fillRext 方法,創(chuàng)建矩形圖像,從坐標(biāo)(0,0)畫至坐標(biāo)(150,75)
</script>

如果需要了解過多的context對象的話去搜索下關(guān)于這個(gè)對象的其他方法吧。

 四、客戶端數(shù)據(jù)存儲(chǔ)

TML5 提供了兩種在客戶端存儲(chǔ)數(shù)據(jù)的新方法:

  • localStorage - 沒有時(shí)間限制的數(shù)據(jù)存儲(chǔ)

  • sessionStorage - 針對一個(gè) session 的數(shù)據(jù)存儲(chǔ)

在HTML5出來之前,都是由COOKIE來做這些工作,但是 cookie 不適合大量數(shù)據(jù)的存儲(chǔ),因?yàn)樗鼈冇擅總€(gè)對服務(wù)器的請求來傳遞,這使得 cookie 速度很慢而且效率也不高。不過IE和火狐都有其他的客戶端存儲(chǔ)數(shù)據(jù)方式,IE有它的userdata 火狐有它的 globalStorage ,但是有了HTML5的這兩種新的存儲(chǔ)方式,其他一切存儲(chǔ)方式都是浮云。

在 HTML5 中,數(shù)據(jù)不是由每個(gè)服務(wù)器請求傳遞的,而是只有在請求時(shí)使用數(shù)據(jù)。它使在不影響網(wǎng)站性能的情況下存儲(chǔ)大量數(shù)據(jù)成為可能。當(dāng)然了這種請求方式和userdata globalStorage都差不多的,請求要快的多。

關(guān)于localStorage方法:

localStorage 方法存儲(chǔ)的數(shù)據(jù)沒有時(shí)間限制。

測試代碼如下

<script>

if(localStorage.count)localStorage.count = Number(localStorage.count)+1;
else localStorage.count = 1;
alert(localStorage.count)

</script>

關(guān)于sessionStorage方法:

sessionStorage 方法針對一個(gè) session 進(jìn)行數(shù)據(jù)存儲(chǔ)。當(dāng)用戶關(guān)閉瀏覽器窗口后,數(shù)據(jù)會(huì)被刪除

測試代碼如下:

if (sessionStorage.pagecount)
  {
  sessionStorage.pagecount=Number(sessionStorage.pagecount) +1;
  }
else
  {
  sessionStorage.pagecount=1;
  }
alert(sessionStorage.pagecount)

我是在火狐下測試的,刷第一次的時(shí)候是1,如果不清除COOKIE的情況下再刷,第二次就是2,但是清除COOKIE之后再刷,結(jié)果會(huì)是1,難道這些存儲(chǔ)方式還和COOKIE還有藕斷絲連的關(guān)系?

 

 

 

 

 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI