h5的一些小扩展

(1)地理定位

在HTML规范中,增长了获取用户地理信息的API,这样使得咱们能够基于用户位置开发互联网应用,即基于位置服务 (Location Base Service)css

  • 获取当前地理信息html

navigator.geolocation.getCurrentPosition(successCallback, errorCallback) 
  • 重复获取当前地理信息git

navigator. geolocation.watchPosition(successCallback, errorCallback)
  • 当成功获取地理信息后,会调用succssCallback,并返回一个包含位置信息的对象position。position.coords.latitude纬度position.coords.longitude经度position.coords.accuracy精度position.coords.altitude海拔高度chrome

  • 当获取地理信息失败后,会调用errorCallback,并返回错误信息error浏览器

  • 在现实开发中,经过调用第三方API(如百度地图)来实现地理定位信息,这些API都是基于用户当前位置的,并将用位置位置(经/纬度)当作参数传递,就能够实现相应的功能。缓存

(2)离线应用

HTML5中咱们能够轻松的构建一个离线(无网络状态)应用,只须要建立一个cache manifest文件。服务器

  • 优点网络

    • 一、可配置须要缓存的资源app

    • 二、网络无链接应用仍可用工具

    • 三、本地读取缓存资源,提高访问速度,加强用户体验

    • 四、减小请求,缓解服务器负担

  • 缓存清单

    • 一个普通文本文件,其中列出了浏览器应缓存以供离线访问的资源,推荐使用.appcache为后缀名

    • 例如咱们建立了一个名为demo.appcache的文件,而后在须要应用缓存在页面的根元素(html)添加属性manifest="demo.appcache",路径要保证正确。

  • manifest文件格式

    • 一、顶行写CACHE MANIFEST

    • 二、CACHE: 换行 指定咱们须要缓存的静态资源,如.css、image、js等

    • 三、NETWORK: 换行 指定须要在线访问的资源,可以使用通配符

    • 四、FALLBACK: 换行 当被缓存的文件找不到时的备用资源

  • 其它

    • 一、CACHE: 能够省略,这种状况下将须要缓存的资源写在CACHE MANIFEST

    • 二、能够指定多个CACHE: NETWORK: FALLBACK:,无顺序限制

    • 三、#表示注释,只有当demo.appcache文件内容发生改变时或者手动清除缓存后,才会从新缓存。

    • 四、chrome 能够经过chrome://appcache-internals/工具和离线(offline)模式来调试管理应用缓存

(3)文件读取

HTML5新增内建对象,能够读取本地文件内容。


/*获取到了文件表单元素*/
var file = document.querySelector('.file');
/*选择文件后触发*/
file.onchange = function () {
  /*初始化了一个文件读取对象*/
  var reader = new FileReader();
  /*读取文件数据 this.files[0] 文件表单元素选择的第一个文件 */
  reader.readAsDataURL(this.files[0]);
  /*读取的过程就至关于 加载过程 */
  /*读取完毕 预览 */
  reader.onload = function () {
      /*读取完毕 base64位数据 表示图片*/
      console.log(this.result);
    document.querySelector('#img').src = this.result;

  }
}

(4)h5拖拽

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

被拖动的源对象能够触发的事件:

(1) ondragstart:源对象开始被拖动

(2) ondrag:源对象被拖动过程当中(鼠标可能在移动也可能未移动)

(3) ondragend:源对象被拖动结束

拖动源对象能够进入到上方的目标对象能够触发的事件:

(1) ondragenter:目标对象被源对象拖动着进入

(2) ondragover:目标对象被源对象拖动着悬停在上方

(3) ondragleave:源对象拖动着离开了目标对象

(4) ondrop:源对象拖动着在目标对象上方释放/松手

(5)网络状态

  • 咱们能够经过window.navgator.onLine来检测,用户当前的网络情况,返回一个布尔值

    • window.online用户网络链接时被调用

    • window.offline用户网络断开时被调用

相关文章
相关标签/搜索