HTML5新API记录
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记录相关推荐
- HTML5新API详解之历史、地理位置处理、全屏处理
历史 界面上的所有JS操作不会被浏览器记住,就无法回到之前的状态. 在HTML5中可以通过 window.history 操作访问历史状态,让一个页面可以有多个历史状态 window.history对 ...
- HTML5新特性(新元素、更强大的forms、整合的API)
文章目录 HTML5新特性 新元素 Forms变化 Integrated API HTML5新特性 编写html5文档时,你最先注意到的新特性是文档类型声明: <!DOCTYPE HTML> ...
- html拖放api之图片相框,html5拖放API简介及应用
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 通常我们在上传文件时,需要使用 这样的上传文件标签.而在html5中,它提供了拖放的接口,以下的内容就是对html5拖放 ...
- html页面视频标签,html5基础标签(html5视频标签 html5新标签用法)
点评:html5基础,包括html5视频标签和html5新标签等标签用法,大家参考使用吧 1. 声明的变化 2. 指定字符编码的变化,html5中建议使用utf-8 3. Html5中允许 没有 ...
- HTML中三维特性,前端进阶系列(三):HTML5新特性
HTML5 是对 HTML 标准的第五次修订.其主要的目标是将互联网语义化,以便更好地被人类和机器阅读,并同时提供更好地支持各种媒体的嵌入.HTML5 的语法是向后兼容的.现在国内普遍说的 H5 是包 ...
- html5在线api,HTML5 历史记录API
HTML5 历史记录API HTML5历史记录API的使用方法,在线实例演示HTML5历史记录API如何使用.浏览器的兼容性.语法定义及它的属性值详细资料等. HTML5历史记录API使您可以通过Ja ...
- js考试题 html5新特性,Web前端初级面试题总结
Web前端初级面试题总结 发布时间:2018-11-02 11:17, 浏览次数:549 , 标签: Web Web篇: 1.常见的浏览器内核有哪些? IE:Trident内核 ...
- 隐藏画质代码_「图」画质修改工具ReShade放出4.5.0更新:改进对Vulkan等较新API的支持...
知名第三方画质修改工具ReShade昨天放出了4.5.0重大版本更新,其中最大的亮点就是改善了对Vulkan等较新API的支持.新版本还对GUI.效果编译器.Vulkan后端实现等进行了诸多改进,并对 ...
- html5变动标签新写法,Html5新标签解释及用法
Html5新标签解释及用法 发布时间:2012-02-17 22:50:45 作者:佚名 我要评论 HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1. ...
- HTML5 Drop API
转自:http://www.cnblogs.com/fsjohnhuang/p/3961066.html 一.前言 在HTML4的时代,各前端工程师为了实现拖拽功能可说是煞费苦心,初听HTML5 ...
最新文章
- 十字相乘法c语言,十字相乘法的运算方法
- Category简介 (上篇)
- Windows版 mysql 5.7.16安装
- 正式入住博客园----附07年写的短评,虽然稚嫩但已实现,那年我大三。
- 笔记:Hadoop权威指南 第4章 Hadoop I/O
- Linux 操作命令(1)
- redmine1.3.x 插件安装
- Codeforces Round #337 (Div. 2) C. Harmony Analysis
- html5输入框自动放大镜,JS 仿支付宝input输入显示数字放大镜
- jQuery获取URL的GET参数值
- 鸿蒙明年可以在手机上用吗,华为王成录:鸿蒙已满足在手机上使用,明年一二月份向部分用户开放...
- javascript-网页换肤案例
- 3P新产品开发管理实务
- Nova 操作汇总(限 libvirt 虚机) [Nova Operations Summary]
- flash跟随鼠标样式
- Ubuntu 第2章 基本命令和文件系统
- html怎么打开成word,html怎么打开Word文档
- kali初学——nmap扫描
- golang 腾讯通用OCR 文字识别 Api 调用
- 高能所客座用户计算机申请,2020年中科院高能所招收联合培养硕士博士生、客座研究生多名...