一、地理定位 Geolocation

兼容性:Internet Explorer 9+, Firefox, Chrome, Safari 和 Opera 支持Geolocation(地理定位)。

一次性定位 getCurrentPosition() 

getLocation()
function getLocation(){
if (navigator.geolocation) {
console.log('支持定位');
window.navigator.geolocation.getCurrentPosition(success,error);
}else{
console.log('浏览器不支持定位');
}
} //成功获取地理位置时候的回调函数
function success (position) {
console.log(position);
const {latitude, longitude} = position.coords
} //地理位置获取失败时候的回调函数
function error (error) {
console.log(error.message);//失败信息 }

实时定位 watchPosition()

getLocation()
function getLocation(){
if (navigator.geolocation) {
console.log('支持定位');
window.navigator.geolocation.watchPosition(success,error);
}else{
console.log('浏览器不支持定位');
}
} //成功获取地理位置时候的回调函数
function success (position) {
console.log(position);
const {latitude, longitude} = position.coords
} //地理位置获取失败时候的回调函数
function error (error) {
console.log(error.message);//失败信息 }

二、web存储

兼容性:Internet Explorer 8+, Firefox, Opera, Chrome, 和 Safari支持Web 存储。

localStorage

1. 永久生效
2. 多窗口共享
3. 容量大约为20M

◆window.localStorage.setItem(key,value) 设置存储内容
◆window.localStorage.getItem(key) 获取内容
◆window.localStorage.removeItem(key) 删除内容
◆window.localStorage.clear() 清空内容

只要在相同的协议、相同的主机名、相同的端口下,就能读取/修改到同一份localStorage数据。

sessionStorage

1. 生命周期为关闭当前浏览器窗口
2. 可以在同一个窗口下访问
3. 数据大小为5M左右

◆window.sessionStorage.setItem(key,value)
◆window.sessionStorage.getItem(key)
◆window.sessionStorage.removeItem(key)
◆window.sessionStorage.clear()

除了协议、主机名、端口外,还要求在同一窗口(也就是浏览器的标签页)下,就能读取/修改。

三、拖放

兼容性:Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 支持拖动,但Safari 5.1.2不支持拖动。

分析:分成两部分,一部分是被拖动的元素,另一部分是接收拖动元素的区域元素

被拖动元素: 

draggable 属性设置为 true

ondragstart 属性调用了一个函数drag(event)

接收拖动元素的区域元素:

ondragover 属性事件规定在何处放置被拖动的数据 event.preventDefault()

ondrop 属性调用了一个函数drop(event)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<style>
body{
display: flex;
justify-content: space-around;
}
div{
width: 150px;
height: 80px;
border: 1px solid #000;
display: flex;
justify-content: center;
align-items: center;
}
</style>
<body>
<div ondragover="alowDrag(event)" ondrop="drop(event)"></div>
<div ondragover="alowDrag(event)" ondrop="drop(event)"></div>
<span id="span" draggable="true" ondragstart="dragstart(event)">移动我哦</span>
</body>
<script>
function dragstart(event){
event.dataTransfer.setData("span",event.target.id)
} function alowDrag(event){
event.preventDefault()
} function drop(event){
event.preventDefault()
var data = event.dataTransfer.getData("span")
event.target.appendChild(document.getElementById(data))
}
</script>
</html>

最新文章

  1. jquery遍历table获取td单元格的值
  2. CORS(跨源资源共享)实战
  3. DAO 开发模式的几个类
  4. 常用git命令纪录
  5. Messenger
  6. android之ExpandableListActivity
  7. 三星原厂就K9K8G08U0D升级为K9K8G08U0E的回信
  8. Java学习日记-2.2 增强后的switch-case
  9. 【高精度递推】【HDU1297】Children’s Queue
  10. js自定义事件、DOM/伪DOM自定义事件
  11. gant
  12. Ubuntu无法访问windows分区
  13. Java面向对象 GUI 补录
  14. 【Python】 xml解析与生成 xml
  15. Cookie、Session登陆验证相关介绍和用法
  16. An incompatible version [1.1.29] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
  17. echarts中的区域缩放组件dataZoom,主动触发选区缩放点击事件
  18. Java开发笔记(二十一)二维数组的扩展
  19. Windows编译安装使用cephfs客户端
  20. git遇到的问题 .Git: There is no tracking information for the current branch.

热门文章

  1. MacBook键盘锁定、按键失效、无反应等问题
  2. Feign 自定义 ErrorDecoder (捕获 Feign 服务端异常)
  3. Java 生成有序 UUID
  4. springsecurity+springsocial资料收集
  5. Python中使用“模块名.__all__”查看模块建议导出的属性
  6. PyQt(Python+Qt)学习随笔:Qt Designer中主窗口对象的dockOptions属性
  7. 图论——迪杰斯特拉算法(Dijkstra)实现,leetcode
  8. 原创:DynamicDataDisplay波形显示自定义格式
  9. [Python] 快速爬取当前城市所有租房网站房源及配置,一目了然
  10. Mac下安装appium+python+Android sdk 环境完整流程