HTML5学习,常用常记(MathML,拖放,定位)

el/2024/4/13 14:41:26

HTML5 MathML

  • HTML5 可以在文档中使用 MathML 元素,对应的标签是 <math>...</math> 。
  • MathML 是数学标记语言,是一种基于XML(标准通用标记语言的子集)的标准,用来在互联网上书写数学符号和公式的置标语言。
  • 注意:大部分浏览器都支持 MathML 标签,如果你的浏览器不支持该标签,可以使用最新版的 Firefox 或 Safari 浏览器查看。
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title><style type="text/css">#div1, #div2{float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;}</style><script>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)"><img src="img_w3slogo.gif" draggable="true" ondragstart="drag(event)" id="drag1" width="88" height="31"></div><div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
</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")
  • 把被拖元素追加到放置元素(目标元素)中

定位用户的位置

  • HTML5 Geolocation API 用于获得用户的地理位置。
  • 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的。
<p id="demo">点击按钮获取您当前坐标(可能需要比较长的时间获取):</p>
<button onclick="getLocation()">点我</button>
<script>var 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;-->var latlon=position.coords.latitude+","+position.coords.longitude;var img_url="http://maps.googleapis.com/maps/api/staticmap?center="+latlon+"&zoom=14&size=400x300&sensor=false";document.getElementById("mapholder").innerHTML="<img src='"+img_url+"'>";}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>

实例解析:

  • 检测是否支持地理定位
  • 如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。
  • 如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象
  • showPosition() 函数获得并显示经度和纬度
  • 如果getCurrentPosition()运行成功,但第二个参数捕获到错误,进行分析
  • 错误代码:
    • Permission denied - 用户不允许地理定位
    • Position unavailable - 无法获取当前位置
    • Timeout - 操作超时
  • 上面的链接向您演示如何使用脚本来显示带有标记、缩放和拖曳选项的交互式地图。

给定位置的信息

本页演示的是如何在地图上显示用户的位置。不过,地理定位对于给定位置的信息同样很有用处。

实例:

  • 更新本地信息
  • 显示用户周围的兴趣点
  • 交互式车载导航系统 (GPS)

getCurrentPosition() 方法 - 返回数据

T若成功,则 getCurrentPosition() 方法返回对象。始终会返回 latitude、longitude 以及 accuracy 属性。如果可用,则会返回其他下面的属性。

属性描述
coords.latitude十进制数的纬度
coords.longitude十进制数的经度
coords.accuracy位置精度
coords.altitude海拔,海平面以上以米计
coords.altitudeAccuracy位置的海拔精度
coords.heading方向,从正北开始以度计
coords.speed速度,以米/每秒计
timestamp响应的日期/时间

Geolocation 对象实时更新用户位置;


http://www.ngui.cc/el/2274572.html

相关文章

HTML5学习,常用常记(Video,Audio,Input)

检测您的浏览器是否支持 HTML5 视频&#xff1b; <video width"320" height"240" controls><source src"movie.mp4" type"video/mp4"><source src"movie.ogg" type"video/ogg">您的浏览器不支…

HTML5学习,常用常记(表单元素,表单属性(真心多,但真的常用))

HTML5 <datalist> 元素 <datalist> 元素规定输入域的选项列表。<datalist> 属性规定 form 或 input 域应该拥有自动完成功能。当用户在自动完成域中开始输入时&#xff0c;浏览器应该在该域中显示填写的选项&#xff1a;使用 <input> 元素的列表属性与…

HTML5学习,常用常记(语义元素,Web存储(。。。))

什么是语义元素? 一个语义元素能够清楚的描述其意义给浏览器和开发者。无语义 元素实例: <div> 和 <span> - 无需考虑内容.语义元素实例: <form>, <table>, and <img> - 清楚的定义了它的内容. HTML5 <section> 元素 <section> 标…

HTML5学习,常用常记(Web SQL,应用程序缓存)

HTML5 Web SQL 数据库 Web SQL 数据库 API 并不是 HTML5 规范的一部分&#xff0c;但是它是一个独立的规范&#xff0c;引入了一组使用 SQL 操作客户端数据库的 APIs。如果你是一个 Web 后端程序员&#xff0c;应该很容易理解 SQL 的操作。你也可以参考我们的 SQL 教程&#x…

HTML5学习,常用常记(Web Worker,服务器发送事件,其他功能)

什么是 Web Worker&#xff1f; 当在 HTML 页面中执行脚本时&#xff0c;页面的状态是不可响应的&#xff0c;直到脚本已完成。web worker 是运行在后台的 JavaScript&#xff0c;独立于其他脚本&#xff0c;不会影响页面的性能。您可以继续做任何愿意做的事情&#xff1a;点击…

JAVA概述(知到课程 + 菜鸟教程随笔)

一次编写&#xff0c;处处运行&#xff1b; 字节码文件&#xff0c;JAVA虚拟机&#xff1b; 面向对象&#xff0c;封装继承多态&#xff0c;多线程&#xff1b; JAVA 2se桌面开发低端商务应用 1ee企业 3me消费产品和嵌入式设备&#xff1b; jar.exe打包java文件&#xff0c…

JAVA学习,常用常记(基础语法,标识符,修饰符,关键字,注释(菜鸟教程))

Java 基础语法 一个Java程序可以认为是一系列对象的集合&#xff0c;而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象&#xff1a;对象是类的一个实例&#xff0c;有状态和行为。例如&#xff0c;一条狗是一个对象&#xff0c…

JAVA学习,常用常记(标识符,数据类型,运算符,分支语句,循环语句,跳转语句(知到))

呃&#xff0c;学过C和Python之后直接过掉就好了&#xff0c;自己拼的标识符一般不会搞出关键字的&#xff1b; 所有语言中&#xff08;我接触到的&#xff09;&#xff0c;html css不区分大小写&#xff0c;其他语言区分大小写&#xff08;对大小写敏感&#xff09;&#xf…

JAVA学习,常用常记(基本数据类型补充(包装类,min,max),转义,三种变量类型,静态成员函数和类变量(菜鸟教程补充))

Java 的两大数据类型: 内置数据类型引用数据类型 public class PrimitiveTypeTest { public static void main(String[] args) { // byte System.out.println("基本类型&#xff1a;byte 二进制位数&#xff1a;" Byte.SIZE); System.out.println("包装类…

JAVA学习,常用常记(运算符,增强for循环(菜鸟教程补充))

instanceof 运算符 该运算符用于操作对象实例&#xff0c;检查该对象是否是一个特定类型&#xff08;类类型或接口类型&#xff09;。 如果运算符左侧变量所指的对象&#xff0c;是操作符右侧类或接口(class/interface)的一个对象&#xff0c;那么结果为真。 String name &…