HTML5提供了一些非常强大的JavaScript和HTML API,来帮助开发者构建精彩的桌面和移动应用程序。本文将介绍5个新型的API,希望对你的开发工作有所帮助。

1.  全屏API(Fullscreen API)

该API允许开发者以编程方式将Web应用程序全屏运行,使Web应用程序更像本地应用程序。

//找到合适的浏览器全屏方法 element.requestFullScreen();

function launchFullScreen(element) {

if(element.requestFullScreen) {

element.requestFullScreen();

} else if(element.mozRequestFullScreen) {

      lement.mozRequestFullScreen();

} else if(element.webkitRequestFullScreen) {

element.webkitRequestFullScreen();

}

}

//启动全屏模式  常用于视频

launchFullScreen(document.getElementById("videoElement"));

//退出全屏模式

document.cancelFullScreen();

document.mozCancelFullScreen();

document.webkitCancelFullScreen();

//添加全屏变化事件

element.addEventListener(‘fullscreenchange’, function(e) {

if (document.fullScreen) {                     // document.webkitIsFullScreen

/* make it look good for fullscreen */

} else {

/* return to the normal state in page */

}

}, false);

//看很多文章都是这样写 但是我试验了一下 好像木有反应

//我再手机播放视频通常使用

video.addEventListener('webkitendfullscreen', function(e) {
    alert("退出全屏")
}, false);
video.addEventListener('webkitbeginfullscreen', function(e) {
    alert("进入")
}, false);

  2.  页面可见性API(Page Visibility API)

  该API可以用来检测页面对于用户的可见性,即返回用户当前浏览的页面或标签的状态变化。

 //设置页面可见性变化监听 document.addEventListener("visibilitychange",stateChanged);    document.addEventListener("webkitvisibilitychange", stateChanged);    document.addEventListener("msvisibilitychange", stateChanged);function stateChanged(){
console.log(document.webkitVisibilityState);
    if(document.hidden || document.webkitHidden || document.msHidden){  alert("hidden")}    }

3.  Link Prefetching

预加载网页内容,为浏览者提供一个平滑的浏览体验。

<!-- full page --><link rel="prefetch" href="http://davidwalsh.name/css-enhancements-user-experience" /> <!-- just an image -->

4.DeviceOrientationEvent是获取方向,得到device静止时的绝对值;
    DeviceMotionEvent是获取移动速度,得到device移动时相对之前某个时间的差值比

设备定位API,该API允许你收集设备的方向和移动信息。此外,该API只在具备陀螺仪功能的设备上使用。

<html>

<head>
<title>DeviceOrientationEvent</title>
<meta charset="UTF-8" />
</head>

<body>
<p>左右:<span id="alpha">0</span>
</p>
<p>前后:<span id="beta">0</span>
</p>
<p>扭转:<span id="gamma">0</span>
</p>
<p>指北针指向:<span id="heading">0</span>度</p>
<p>指北针精度:<span id="accuracy">0</span>度</p>
<hr />
<p>x轴加速度:<span id="x">0</span>米每二次方秒</p>
<p>y轴加速度:<span id="y">0</span>米每二次方秒</p>
<p>z轴加速度:<span id="z">0</span>米每二次方秒</p>
<hr />
<p>x轴加速度(考虑重力加速度):<span id="xg">0</span>米每二次方秒</p>
<p>y轴加速度(考虑重力加速度):<span id="yg">0</span>米每二次方秒</p>
<p>z轴加速度(考虑重力加速度):<span id="zg">0</span>米每二次方秒</p>
<hr />
<p>左右旋转速度:<span id="Ralpha">0</span>度每秒</p>
<p>前后旋转速度:<span id="Rbeta">0</span>度每秒</p>
<p>扭转速度:<span id="Rgamma">0</span>度每秒</p>
<hr />
<p>上次收到通知的间隔:<span id="interval">0</span>毫秒</p>

<script type="text/javascript">
function orientationHandler(event) {
document.getElementById("alpha").innerHTML = event.alpha;
document.getElementById("beta").innerHTML = event.beta;
document.getElementById("gamma").innerHTML = event.gamma;
document.getElementById("heading").innerHTML = event.webkitCompassHeading;
document.getElementById("accuracy").innerHTML = event.webkitCompassAccuracy;

}

function motionHandler(event) {
document.getElementById("interval").innerHTML = event.interval;
var acc = event.acceleration;
document.getElementById("x").innerHTML = acc.x;
document.getElementById("y").innerHTML = acc.y;
document.getElementById("z").innerHTML = acc.z;
var accGravity = event.accelerationIncludingGravity;
document.getElementById("xg").innerHTML = accGravity.x;
document.getElementById("yg").innerHTML = accGravity.y;
document.getElementById("zg").innerHTML = accGravity.z;
var rotationRate = event.rotationRate;
document.getElementById("Ralpha").innerHTML = rotationRate.alpha;
document.getElementById("Rbeta").innerHTML = rotationRate.beta;
document.getElementById("Rgamma").innerHTML = rotationRate.gamma;
}

if (window.DeviceMotionEvent) {
window.addEventListener("devicemotion", motionHandler, false);
} else {
document.body.innerHTML = "What user agent u r using???";
}

if (window.DeviceOrientationEvent) {
window.addEventListener("deviceorientation", orientationHandler, false);
} else {
document.body.innerHTML = "What user agent u r using???";
};
</script>
</body>

</html>

转载于:https://www.cnblogs.com/likehtml5/p/3531246.html

HTML5新API记录相关推荐

  1. HTML5新API详解之历史、地理位置处理、全屏处理

    历史 界面上的所有JS操作不会被浏览器记住,就无法回到之前的状态. 在HTML5中可以通过 window.history 操作访问历史状态,让一个页面可以有多个历史状态 window.history对 ...

  2. HTML5新特性(新元素、更强大的forms、整合的API)

    文章目录 HTML5新特性 新元素 Forms变化 Integrated API HTML5新特性 编写html5文档时,你最先注意到的新特性是文档类型声明: <!DOCTYPE HTML> ...

  3. html拖放api之图片相框,html5拖放API简介及应用

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 通常我们在上传文件时,需要使用 这样的上传文件标签.而在html5中,它提供了拖放的接口,以下的内容就是对html5拖放 ...

  4. html页面视频标签,html5基础标签(html5视频标签 html5新标签用法)

    点评:html5基础,包括html5视频标签和html5新标签等标签用法,大家参考使用吧 1.  声明的变化 2.  指定字符编码的变化,html5中建议使用utf-8 3.  Html5中允许 没有 ...

  5. HTML中三维特性,前端进阶系列(三):HTML5新特性

    HTML5 是对 HTML 标准的第五次修订.其主要的目标是将互联网语义化,以便更好地被人类和机器阅读,并同时提供更好地支持各种媒体的嵌入.HTML5 的语法是向后兼容的.现在国内普遍说的 H5 是包 ...

  6. html5在线api,HTML5 历史记录API

    HTML5 历史记录API HTML5历史记录API的使用方法,在线实例演示HTML5历史记录API如何使用.浏览器的兼容性.语法定义及它的属性值详细资料等. HTML5历史记录API使您可以通过Ja ...

  7. js考试题 html5新特性,Web前端初级面试题总结

    Web前端初级面试题总结 发布时间:2018-11-02 11:17, 浏览次数:549 , 标签: Web Web篇: 1.常见的浏览器内核有哪些? IE:Trident内核            ...

  8. 隐藏画质代码_「图」画质修改工具ReShade放出4.5.0更新:改进对Vulkan等较新API的支持...

    知名第三方画质修改工具ReShade昨天放出了4.5.0重大版本更新,其中最大的亮点就是改善了对Vulkan等较新API的支持.新版本还对GUI.效果编译器.Vulkan后端实现等进行了诸多改进,并对 ...

  9. html5变动标签新写法,Html5新标签解释及用法

    Html5新标签解释及用法 发布时间:2012-02-17 22:50:45   作者:佚名   我要评论 HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1. ...

  10. HTML5 Drop API

    转自:http://www.cnblogs.com/fsjohnhuang/p/3961066.html 一.前言    在HTML4的时代,各前端工程师为了实现拖拽功能可说是煞费苦心,初听HTML5 ...

最新文章

  1. 十字相乘法c语言,十字相乘法的运算方法
  2. Category简介 (上篇)
  3. Windows版 mysql 5.7.16安装
  4. 正式入住博客园----附07年写的短评,虽然稚嫩但已实现,那年我大三。
  5. 笔记:Hadoop权威指南 第4章 Hadoop I/O
  6. Linux 操作命令(1)
  7. redmine1.3.x 插件安装
  8. Codeforces Round #337 (Div. 2) C. Harmony Analysis
  9. html5输入框自动放大镜,JS 仿支付宝input输入显示数字放大镜
  10. jQuery获取URL的GET参数值
  11. 鸿蒙明年可以在手机上用吗,华为王成录:鸿蒙已满足在手机上使用,明年一二月份向部分用户开放...
  12. javascript-网页换肤案例
  13. 3P新产品开发管理实务
  14. Nova 操作汇总(限 libvirt 虚机) [Nova Operations Summary]
  15. flash跟随鼠标样式
  16. Ubuntu 第2章 基本命令和文件系统
  17. html怎么打开成word,html怎么打开Word文档
  18. kali初学——nmap扫描
  19. golang 腾讯通用OCR 文字识别 Api 调用
  20. 高能所客座用户计算机申请,2020年中科院高能所招收联合培养硕士博士生、客座研究生多名...

热门文章

  1. [译文]Domain Driven Design Reference(六)—— 提炼战略设计
  2. 《剑指offer》青蛙跳台阶
  3. [转] 如何看透一个人
  4. 记录一次APP的转让流程
  5. 咱们开始吧!第一次作业
  6. machine learning(8) -- classification
  7. 布局优化之ViewStub、Include、merge使用分析
  8. 第1节 kafka消息队列:5、javaAPI操作
  9. Floyd算法 C++实现
  10. js的浅拷贝与深拷贝