一、地理定位 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>

 

版权声明:本文为styleFeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/styleFeng/p/14215524.html