• HTML 5 简介、视频、Video + DOM、音频、拖放


    HTML5 是下一代的 HTML。

    什么是 HTML5?

    HTML5 将成为 HTML、XHTML 以及 HTML DOM 的新标准。

    HTML 的上一个版本诞生于 1999 年。自从那以后,Web 世界已经经历了巨变。

    HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。

    HTML5 是如何起步的?

    HTML5 是 W3C 与 WHATWG 合作的结果。

    编者注:W3C 指 World Wide Web Consortium,万维网联盟。

    编者注:WHATWG 指 Web Hypertext Application Technology Working Group。

    WHATWG 致力于 web 表单和应用程序,而 W3C 专注于 XHTML 2.0。在 2006 年,双方决定进行合作,来创建一个新版本的 HTML。

    为 HTML5 建立的一些规则:

    • 新特性应该基于 HTML、CSS、DOM 以及 JavaScript。
    • 减少对外部插件的需求(比如 Flash)
    • 更优秀的错误处理
    • 更多取代脚本的标记
    • HTML5 应该独立于设备
    • 开发进程应对公众透明

    新特性

    HTML5 中的一些有趣的新特性:

    • 用于绘画的 canvas 元素
    • 用于媒介回放的 video 和 audio 元素
    • 对本地离线存储的更好的支持
    • 新的特殊内容元素,比如 article、footer、header、nav、section
    • 新的表单控件,比如 calendar、date、time、email、url、search

    浏览器支持

    最新版本的 Safari、Chrome、Firefox 以及 Opera 支持某些 HTML5 特性。Internet Explorer 9 将支持某些 HTML5 特性。

    许多时髦的网站都提供视频。HTML5 提供了展示视频的标准。

    检测您的浏览器是否支持 HTML5 视频:

    Yes! Full support!

    Web 上的视频

    直到现在,仍然不存在一项旨在网页上显示视频的标准。

    今天,大多数视频是通过插件(比如 Flash)来显示的。然而,并非所有浏览器都拥有同样的插件。

    HTML5 规定了一种通过 video 元素来包含视频的标准方法。

    视频格式

    当前,video 元素支持三种视频格式:

    格式IEFirefoxOperaChromeSafari
    Ogg No 3.5+ 10.5+ 5.0+ No
    MPEG 4 9.0+ No No 5.0+ 3.0+
    WebM No 4.0+ 10.6+ 6.0+ No

    Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件

    MPEG4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件

    WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件

    如何工作

    如需在 HTML5 中显示视频,您所有需要的是:

    <video src="movie.ogg" controls="controls">
    </video>

    control 属性供添加播放、暂停和音量控件。

    包含宽度和高度属性也是不错的主意。

    <video> 与 </video> 之间插入的内容是供不支持 video 元素的浏览器显示的:

    实例

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

    TIY

    上面的例子使用一个 Ogg 文件,适用于Firefox、Opera 以及 Chrome 浏览器。

    要确保适用于 Safari 浏览器,视频文件必须是 MPEG4 类型。

    video 元素允许多个 source 元素。source 元素可以链接不同的视频文件。浏览器将使用第一个可识别的格式:

    实例

    <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>

    Internet Explorer

    Internet Explorer 8 不支持 video 元素。在 IE 9 中,将提供对使用 MPEG4 的 video 元素的支持。

    <video> 标签的属性

    属性描述
    autoplay autoplay 如果出现该属性,则视频在就绪后马上播放。
    controls controls 如果出现该属性,则向用户显示控件,比如播放按钮。
    height pixels 设置视频播放器的高度。
    loop loop 如果出现该属性,则当媒介文件完成播放后再次开始播放。
    preload preload

    如果出现该属性,则视频在页面加载时进行加载,并预备播放。

    如果使用 "autoplay",则忽略该属性。

    src url 要播放的视频的 URL。
    width pixels 设置视频播放器的宽度。

    HTML5 <video> - 使用 DOM 进行控制

    HTML5 <video> 元素同样拥有方法、属性和事件。

    其中的方法用于播放、暂停以及加载等。其中的属性(比如时长、音量等)可以被读取或设置。其中的 DOM 事件能够通知您,比方说,<video> 元素开始播放、已暂停,已停止,等等。

    下例中简单的方法,向我们演示了如何使用 <video> 元素,读取并设置属性,以及如何调用方法。

    实例

    为视频创建简单的播放/暂停以及调整尺寸控件:

    上面的例子调用了两个方法:play() 和 pause()。它同时使用了两个属性:paused 和 width。

    HTML5 <video> - 方法、属性以及事件

    下面列出了大多数浏览器支持的视频方法、属性和事件:

    方法属性事件
    play() currentSrc play
    pause() currentTime pause
    load() videoWidth progress
    canPlayType videoHeight error
      duration timeupdate
      ended ended
      error abort
      paused empty
      muted emptied
      seeking waiting
      volume loadedmetadata
      height  
      width  

    注释:在所有属性中,只有 videoWidth 和 videoHeight 属性是立即可用的。在视频的元数据已加载后,其他属性才可用。

    HTML5 提供了播放音频的标准。

    Web 上的音频

    直到现在,仍然不存在一项旨在网页上播放音频的标准。

    今天,大多数音频是通过插件(比如 Flash)来播放的。然而,并非所有浏览器都拥有同样的插件。

    HTML5 规定了一种通过 audio 元素来包含音频的标准方法。

    audio 元素能够播放声音文件或者音频流。

    音频格式

    当前,audio 元素支持三种音频格式:

     IE 9Firefox 3.5Opera 10.5Chrome 3.0Safari 3.0
    Ogg Vorbis    
    MP3    
    Wav    

    如何工作

    如需在 HTML5 中播放音频,您所有需要的是:

    <audio src="song.ogg" controls="controls">
    </audio>
    

    control 属性供添加播放、暂停和音量控件。

    <audio> 与 </audio> 之间插入的内容是供不支持 audio 元素的浏览器显示的:

    实例

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

    上面的例子使用一个 Ogg 文件,适用于Firefox、Opera 以及 Chrome 浏览器。

    要确保适用于 Safari 浏览器,音频文件必须是 MP3 或 Wav 类型。

    audio 元素允许多个 source 元素。source 元素可以链接不同的音频文件。浏览器将使用第一个可识别的格式:

    实例

    <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>

    Internet Explorer

    Internet Explorer 8 不支持 audio 元素。在 IE 9 中,将提供对 audio 元素的支持。

    <audio> 标签的属性

    属性描述
    autoplay autoplay 如果出现该属性,则音频在就绪后马上播放。
    controls controls 如果出现该属性,则向用户显示控件,比如播放按钮。
    loop loop 如果出现该属性,则每当音频结束时重新开始播放。
    preload preload

    如果出现该属性,则音频在页面加载时进行加载,并预备播放。

    如果使用 "autoplay",则忽略该属性。

    src url 要播放的音频的 URL。

    拖放(Drag 和 drop)是 HTML5 标准的组成部分。

    拖放

    拖放是一种常见的特性,即抓取对象以后拖到另一个位置。

    在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。

    浏览器支持

    Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支持拖放。

    注释:在 Safari 5.1.2 中不支持拖放。

    HTML5 拖放实例

    下面的例子是一个简单的拖放实例:

    实例

    <!DOCTYPE HTML>
    <html>
    <head>
    <script type="text/javascript">
    function allowDrop(ev)
    {
    ev.preventDefault();
    }
    
    function drag(ev)
    {
    ev.dataTransfer.setData("Text",ev.target.id);
    }
    
    function drop(ev)
    {
    ev.preventDefault();
    var data=ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
    }
    </script>
    </head>
    <body>
    
    <div id="div1" ondrop="drop(event)"
    ondragover="allowDrop(event)"></div>
    <img id="drag1" src="img_logo.gif" draggable="true"
    ondragstart="drag(event)" width="336" height="69" />
    
    </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));
    }
    

    代码解释:

    • 调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开)
    • 通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。
    • 被拖数据是被拖元素的 id ("drag1")
    • 把被拖元素追加到放置元素(目标元素)中
  • 相关阅读:
    修改MySQL密码
    struts入门
    监听
    游戏外挂教程(转)
    “无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性 “之解决
    C# PropertyGrid控件应用心得
    登录时的"记住我"
    自动登录、记住我(保存登陆状态)实现
    UpdatePanel的使用方法
    asp.net中使用基于角色role的Forms验证
  • 原文地址:https://www.cnblogs.com/wlming/p/6112539.html
Copyright © 2020-2023  润新知