HTML5新增API的使用——【网络连接、全屏显示、文件读取、地理定位】

1. 检测网络连接的事件(注意浏览器的兼容性):

(1) ‘online’:网络已连接
在这里插入图片描述

(2) ‘offline’:网络已断开

在这里插入图片描述

<style>
    body{
        margin: 0;
        padding: 0;
        background-color: #f7f7f7;
    }

    p{
        width: 200px;
        height: 40px;
        text-align: center;
        line-height: 40px;
        margin: 0 auto;
        color: #fff;
        font-size: 24px;
        background-color: #000;
        display: none;
    }
</style>
<body>
    <p class="tips"></p>
    <script>
        window.addEventListener('online',function(){
            $('.tips').text('网络已连接').fadeToggle(500).delay(1000).fadeToggle();
        })

        window.addEventListener('offline',function(){
            $('.tips').text('网络已断开').fadeIn(500).delay(1000).fadeOut();
        })

    </script>
</body>

2. 控制页面元素的全屏显示(注意浏览器的兼容性)

  • webkitRequestFullScreen()方法:谷歌浏览器打开全屏显示

  • webkitCancelFullScreen()方法:谷歌浏览器关闭全屏显示

  • webkitIsFullScreen()方法:判断谷歌浏览器是否全屏

<body>
    <div>
        <img src="./fan.jpg" alt="" width="400" height="500">
        <br><br>
        <button id="full">全屏显示</button>
        <button id="cancelfull">取消全屏</button>
        <button id="isfull">是否全屏</button>
    </div>
    <script>
        var div = document.querySelector('div');
 
        document.querySelector('#full').onclick = function () {
            if (div.requestFullscreen) {
                div.requestFullscreen();
            } else if (div.webkitRequestFullScreen) {
                div.webkitRequestFullScreen();
                // div.webkitRequestFullRequest();
            }
        }

        document.querySelector('#cancelfull').onclick = function () {
            if (document.cancelFullscreen) {
                document.cancelFullscreen();
            } else if (document.webkitCancelFullScreen) {
                document.webkitCancelFullScreen();
            }
        }

        document.querySelector('#isfull').onclick = function () {
            alert(document.webkitIsFullScreen)
        }
    </script>
</body>

实现效果:
在这里插入图片描述
在这里插入图片描述

强调:浏览器的兼容性

火狐浏览器:

  • mozRequestFullScreen()方法:火狐浏览器打开全屏显示

  • mozCancelFullScreen()方法:火狐浏览器关闭全屏显示

  • mozIsFullScreen()方法:判断火狐浏览器是否全屏

IE浏览器:

  • msRequestFullScreen()方法:IE浏览器打开全屏显示

  • msCancelFullScreen()方法:IE浏览器关闭全屏显示

  • msIsFullScreen()方法:判断IE浏览器是否全屏

3. 文件读取

  • FileReader:读取本地文件

  • File 对象:读取文件的内容

  • DataTransfer 对象:拖放文件的对象

强调:

 
  <input type="file" multiple>
  <!-- multiple属性表示可以选择多个文件-->
  

在这里插入图片描述

<input type="file" multiple>:会返回一个FileList对象(文件列表)对象保存在files属性中,可以通过索引的方式访问该对象中所有元素,FileList对象(文件列表)中存放的是File对象(文件对象),每个File对象中有三个常用属性:

属性名解释
name文件名
size文件的大小(以字节为单位)
type文件的类型

onchange事件:当用户选择文件发生改变时触发

<body>
    <input type="file">
    <img src="" alt="" width="350" height="260">
    <script>
        var file = document.querySelector('input');
        var img = document.querySelector('img');
        file.onchange = function () {//当'file'控件发生变化时触发该事件
            //1.创建FileReader对象
            var reader = new FileReader();
            //2.读取文件为文本
            reader.readAsDataURL(this.files[0]);//读取第一个文件内容为文本格式
            //3.注册onload事件,将文件的内容放入img中
            reader.onload = function () {
                img.src = this.result;//this代表reader
            }
        }
    </script>
</body>    
  • FileReader的使用方法:
  1. 创建FileReader对象:new FileReader()

  2. 使用该对象的相关方法来读取文件

    readAsBinaryString(file):将文件读取为二进制编码

    readAsText(file,[encoding]):将文件读取为文本

    readAsDataURL(file):将文件读取为DataURL方式(读取图片的缩略图)

    abort():中断读取操作

  3. 访问该对象的result属性得到读取结果

  4. 文件读取的常用事件:

    onload:读取成功时触发

    onloadend:文件读取完成时触发(无论读取是否成功)

    onerror:读取错误时触发

    onabort:读取中断时触发

4. 地理定位:Geolocation接口

使用浏览器内置对象:navigator.geolocation
getCurrentPosition()方法:调用该方法时会发起一个异步请求,浏览器调用底层的硬件来获取当前的位置信息

<body>
    <p id="demo"></p>
    <button onclick="getLocation()">获取位置信息</button>
    <script>
        var x = document.getElementById('#demo');

        function getLocation(){
            if(navigator.geolocation){//如果当前浏览支持地理定位
                navigator.geolocation.getCurrentPosition(successCallBack,errorCallBack)
            }else{
                x.innerHTML = '当前浏览器不支持地理定位';
            }
        }

        function successCallBack(position){//获取地理位置成功后的回调函数
            x.innerHTML = '纬度:'+position.coords.latitude+'<br>'+'经度:'+position.coords.longitude;
        }
        function errorCallBack(error){//获取地理位置成功后的回调函数
            switch(error.code){
                case error.PERMISSION_DEFINED:
                    x.innerHTML = '用户拒绝地理请求';
                    break;
            }
        }
    </script>
</body>

在这里插入图片描述
例子是一个非常基础的地理定位脚本,不含错误处理。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值