HTML5 —— 拖放、地理位置、视频和音频的基本使用

简介: HTML5 —— 拖放、地理位置、视频和音频的基本使用

拖放

拖放(Drag 和 drop)即抓取对象以后拖到另一个位置,是 HTML5 标准的组成部分。


注:


使元素可拖动,把 draggable 属性设置为 true

ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据。

dataTransfer.setData() 方法设置被拖数据的数据类型和值

Text 是一个 DOMString 表示要添加到 drag object 的拖动数据的类型。值是可拖动元素的 id (“drag1”)。

ondragover 事件规定在何处放置被拖动的数据。默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置要通过调用 ondragover 事件的 event.preventDefault() 方法阻止对元素的默认处理方式

当放置被拖数据时,会发生 drop 事件。

dataTransfer.getData(“Text”) 方法获得被拖的数据

把被拖元素追加到放置元素(目标元素)中

(drop 事件的默认行为是以链接形式打开)

  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <style type="text/css">
          #div1, #div2 {
              float:left; 
              width:100px; 
              height:100px; 
              margin:10px;
              padding:10px;
              border:1px solid #aaaaaa;
          }
          </style>
  </head> 
  <body>
      <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">
          <img src="xxx.png" draggable="true" ondragstart="drag(event)" id="drag1" width="88" height="88"></div>
      <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
      <script>
          function allowDrop(ev) {
              ev.preventDefault();
          }
          function drag(ev) {
              ev.dataTransfer.setData("Text",ev.target.id);
          }
          function drop(ev) {
              ev.preventDefault();
              let data = ev.dataTransfer.getData("Text");
              ev.target.appendChild(document.getElementById(data));
          }
      </script>
  </body>
  </html>

https://www.bilibili.com/video/BV1hF411N7yE?t=1.2

拖放


Geolocation(地理定位)

Geolocation API 用于获得用户的地理位置。


注:


getCurrentPosition() 方法来获得用户的位置

coords.latitude 表示十进制的纬度

coords.longitude 表示十进制数的经度

错误代码:


Permission denied - 用户不允许地理定位

Position unavailable - 无法获取当前位置

Timeout - 操作超时

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <p id="demo">获取坐标</p>
        <button onclick="getLocation()">点我</button>
        <script>
            let x = document.getElementById("demo")
            function getLocation() {
                if(navigator.geolocation) {
                    navigator.geolocation.getCurrentPosition(showPosition, showError)
                } else {
                    x.innerHTML = "该浏览器不支持获取地理位置"
                }   
            }
            function showPosition(position) {
                x.innerHTML = '纬度:' + position.coords.latitude + '<br>经度:' + position.coords.longitude 
            }
            function showError(error)
            {
                switch(error.code) 
                {
                    case error.PERMISSION_DENIED:
                        x.innerHTML = "用户拒绝对获取地理位置的请求。"
                        break;
                    case error.POSITION_UNAVAILABLE:
                        x.innerHTML = "位置信息是不可用的。"
                        break;
                    case error.TIMEOUT:
                        x.innerHTML = "请求用户地理位置超时。"
                        break;
                    case error.UNKNOWN_ERROR:
                        x.innerHTML = "未知错误。"
                        break;
                }
            }
        </script>
    </body>
    </html>

位置没获取到:

de78e33bb91147fc9929687b9dc62d7b.png

百度位置:

  <!DOCTYPE html>
  <html>
  <head>
      <meta charset="utf-8" />
      <title></title>
      <!--引入百度 API,"ak=" 后面一串码是密钥,最好自己申请-->
      <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=7a6QKaIilZftIMmKGAFLG7QT1GLfIncg"></script>
  </head>
  <body>
      <div id="position"></div><br>
      <input type="button" onclick="getLocation()" value="点我" />
      <script type="text/javascript">
      var x = document.getElementById('position');
      function getLocation() {
          // 创建百度地理位置实例,代替 navigator.geolocation
          var geolocation = new BMap.Geolocation();
          geolocation.getCurrentPosition(function(e) {
              if(this.getStatus() == BMAP_STATUS_SUCCESS){
                  // 百度 geolocation 的经纬度属性不同,此处是 point.lat 而不是 coords.latitude
                  x.innerHTML = '纬度:' + e.point.lat + '<br/>经度:' + e.point.lng;
              } else {
                  x.innerHTML = 'failed' + this.getStatus();
              }
          });
      }
      </script>
  </body>
  </html>

位置成功获取:

7b9124680956468793bf59f6e7d47c95.png

Video 视频

注:controls:向用户显示控件,比如播放按钮

  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
  </head>
  <body>
      <video src="xxx.mp4" width="320" height="240"  controls></video>
  </body>
  </html>

9e9f9601c56342a59415d70a27d22de4.png

Audio 音频

audio:音频

  <!DOCTYPE html>
  <html lang="en">
  <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
  </head>
  <body>
      <audio src="xxx.mp3" width="320" height="240"  controls></audio>
  </body>
  </html>

c72444112ed1407884f513fd60b9b87c.png

不积跬步无以至千里 不积小流无以成江海

相关文章
|
7月前
|
Web App开发 移动开发 JavaScript
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
【前端用法】HTML5 Video标签如何屏蔽右键视频另存为的js代码以及如何禁用浏览器控件,Video 禁止鼠标右键下载
177 0
|
2月前
|
Web App开发 前端开发 安全
编程笔记 html5&css&js 031 HTML视频
编程笔记 html5&css&js 031 HTML视频
|
2月前
|
Web App开发 前端开发 JavaScript
编程笔记 html5&css&js 030 HTML音频
编程笔记 html5&css&js 030 HTML音频
|
3月前
|
数据采集 数据安全/隐私保护
高效网络采集实践:使用 Haskell 和 html-conduit 下载 www.baidu.com 视频完整教程
网络采集在当今信息时代中发挥着关键作用,用于从互联网上获取数据并进行分析。本文将介绍如何使用 Haskell 进行网络编程,从数据采集到图片分析,为你提供一个清晰的指南。我们将探讨如何使用爬虫代理来确保高效、可靠的数据获取,并使用 Haskell 的强大功能来分析和处理数据。
|
7月前
|
移动开发 JavaScript 前端开发
【前端用法】html5实现地理位置定位(JS获取当前地理位置的方法)
【前端用法】html5实现地理位置定位(JS获取当前地理位置的方法)
126 0
|
10月前
|
前端开发 JavaScript API
wangEditor富文本编辑器的调用开发实录(v5版本、获取HTML内容、上传图片、隐藏上传视频)
wangEditor富文本编辑器的调用开发实录(v5版本、获取HTML内容、上传图片、隐藏上传视频)
493 0
|
10月前
|
移动开发 HTML5
在HTML5中 视频标签 和音频标签的介绍
在HTML5中 视频标签 和音频标签的介绍
154 0
|
5月前
|
前端开发
HTML图片音频视频标签、超链接标签、列表标签和布局标签示例
HTML图片音频视频标签、超链接标签、列表标签和布局标签示例
47 0
|
9月前
|
移动开发 前端开发 HTML5
前端 HTML5 Svg 画板(支持视频、图片上涂鸦,支持缩放、修改、颜色、复选...)
前端 HTML5 Svg 画板(支持视频、图片上涂鸦,支持缩放、修改、颜色、复选...)
183 0
|
10月前
|
C#
C#视频—HTML标签(二)
C#视频—HTML标签