说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

值得开发者关注的8个HTML5 API

HTML文档下载 WORD文档下载 PDF文档下载
HTML5革命给Web开发者们带来许多超棒的JavaScript和HTML API,有些API已逐渐成为他们的好帮手。本文为大家总结了8个非常实用的HTML5 API。

之前,我们曾发布过 你应该知道的HTML5五大特性。下面,再向大家介绍一些非常实用的HTML5 JavaScript API。话说,JavaScript+CSS+HTML一直都是前端开发者的秘密武器,开发者利用它们可以开发出任何想要的东西,比如使用JavaScript访问硬件(摄像头、麦克风、游戏手柄、GPU)、访问文件系统和WebSocket。

1.Battery Status API

电池状态API,顾名思义,该API的主要用途是检查设备(笔记本电脑、手机、平板电脑)的电池状态。

var battery = navigator.battery || navigator.webkitBattery || navigator.mozBatteryconsole.log("Battery charging: ", battery.charging); // trueconsole.log("Battery level: ", battery.level); // 0.58console.log("Battery discharging time: ", battery.dischargingTime);
在经过一番研究后,向大家推荐battery.js库,专门用来检查设备的电池状态。

if(Battery.isSupported()) {    // Get the battery status    var status = Battery.getStatus();    console.log('Level: ' + Math.floor(status.level * 100) + '%'); // 30%    console.log('Charging: ' + status.charging);                   // true    console.log('Time until charged: ' + status.chargingTime);     // 3600 (seconds) or Infinity    console.log('Battery time left: ' + status.dischargingTime);   // 3600 (seconds) or Infinity    // Register a handler to get notified when battery status changes    Battery.onUpdate = function(status) {        console.log(status); // {level, charging, chargingTime, dischargingTime}    };}

浏览器兼容情况(数字表示最低版本号,减号表示不兼容):


2.Gamepad API

游戏手柄API,该API允许你连接计算机和游戏控制台,使用它来玩网页游戏。

navigator.gamepads = navigator.webkitGamepads || navigator.MozGamepads;var requestAnimationFrame = window.webkitRequestAnimationFrame ||                            window.mozRequestAnimationFrame;var cancelAnimationFrame = window.webkitCancelAnimationFrame ||                           window.MozCancelAnimationFrame;var controllers = {}; // Stash connected controllers.var reqId = null;function onConnected(e) {    controllers[e.gamepad.index] = e.gamepad;    runAnimation();}function onDisconnected(e) {    delete controllers[e.gamepad.index];    cancelAnimationFrame(reqId);}window.addEventListener('webkitgamepadconnected', onConnected, false);window.addEventListener('webkitgamepaddisconnected', onDisconnected, false);window.addEventListener('MozGamepadDisconnected', onDisconnected, false);window.addEventListener('MozGamepadConnected', onConnected, false);
以上代码源码,顺便向大家推荐gamepadjs这个库,它可以让你更方便地使用该库。

浏览器兼容情况:


3.Device Orientation API

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


if (window.DeviceOrientationEvent) {    window.addEventListener('deviceorientation', function(event) {        var a = event.alpha,            b = event.beta,            g = event.gamma;        console.log('Orientation - Alpha: ' + a + ', Beta: '+ b + ', Gamma: ' + g);    }, false);} else {    console.log('This device does not support deviceorientation');}
浏览器兼容情况:


4.Geolocation API

地理定位API,开发者使用该API可以请求用户的位置信息,在网页上分享自己的位置信息等。位置信息由纬度、经度坐标和一些其他元数据组成。

if (navigator.geolocation) {    navigator.geolocation.getCurrentPosition(function(position) {        var lat = position.coords.latitude,            lon = position.coords.longitude;        console.log('Geolocation - Latitude: '+ lat +', Longitude: '+ lon);    });}else {    console.log('Geolocation is not supported for this Browser/OS version yet.');}
浏览器兼容情况:


5.Page Visibility API

页面可见度API,该API向开发者提供了一个监听事件,可以告诉开发者当前用户浏览页面或标签的状态变化。

document.addEventListener('visibilitychange', function(e) {    console.log('hidden:' + document.hidden,              'state:' + document.visibilityState)}, false);
浏览器兼容情况:

6.Fullscreen API

全屏API,该API可以让开发人员进入到浏览器的全屏模式,用户在使用的时候可以随意启动和取消该模式。这个API特别适合游戏开发者:

// Find the right method, call on correct element  function launchFullScreen(element) {    if(element.requestFullScreen) {      element.requestFullScreen();    } else if(element.mozRequestFullScreen) {      element.mozRequestFullScreen();    } else if(element.webkitRequestFullScreen) {      element.webkitRequestFullScreen();    }  }  // Launch fullscreen for browsers that support it!  launchFullScreen(document.documentElement); // the whole page  launchFullScreen(document.getElementById("videoElement")); // any individual ele
点击查看教程和示例。

7.getUserMedia API

这是个非常有趣的API,开发者使用该API可以访问多媒体设备,无需插件,比如笔记本的摄像头(要有用户权限)。与<video>和canvas元素一起使用,还可以在浏览器里面捕获许多漂亮的图片。

// Put event listeners into place  window.addEventListener("DOMContentLoaded", function() {    // Grab elements, create settings, etc.    var canvas = document.getElementById("canvas"),      context = canvas.getContext("2d"),      video = document.getElementById("video"),      videoObj = { "video": true },      errBack = function(error) {        console.log("Video capture error: ", error.code);       };     // Put video listeners into place    if(navigator.getUserMedia) { // Standard      navigator.getUserMedia(videoObj, function(stream) {        video.src = stream;        video.play();      }, errBack);    } else if(navigator.webkitGetUserMedia) { // WebKit-prefixed      navigator.webkitGetUserMedia(videoObj, function(stream){        video.src = window.webkitURL.createObjectURL(stream);        video.play();      }, errBack);    }  }, false); 
点击查看教程与示例。

8.Link Prefetching

链接预取API,该API提供页面预览功能,方便开发者改善用户体验。

<!-- full page --> <link rel="prefetch" href="http://davidwalsh.name/css-enhancements-user-experience" /> <!-- just an image --> <link rel="prefetch" href="http://davidwalsh.name/wp-content/themes/walshbook3/images/sprite.png" /> 
点击阅读教程。

英文来自:daker.me

VMware控告Hortonworks恶意挖角 2013年大数据真谛:实时分析与批量处理 微软招聘信息证实Windows Blue项目正在推进 研究人员正开发永不会崩溃的计算机 Google:开发者应尽早进入可穿戴式计算 Chrome OS身世及其创始人之谜 谷歌举办Glass Foundry黑客马拉松活动 获80款Glass应用 政府和法律的干预拖慢了云计算发展 AMD打造开放的异构计算标准? Podcasts:苹果史上最烂iOS应用 烂过iOS Maps 日本游戏开发公司谈:如何在激烈的APP世界立足 VC不会告诉你的8件事 Reddit宣布将接受虚拟货币Bitcoin付款 OneID创始人:双因素身份验证无法保护Twitter Opera放弃自家内核转投WebKit的背后 Amazon强攻私有云市场,目标锁定银行 微软的24年数据中心之路 Flurry:约会应用男同性恋用的最多 jQuery消息提示框的简单实现 Mozilla CTO:Mozilla不会转向WebKit 这很重要 Pinterest或超Twitter成第二大社交网站 适合儿童上手的八款编程工具 一周云事件:亚马逊对消费者的吸引力超过苹果 比尔·盖茨对微软创新和手机不满意 让我们一起来做最漂亮的Android界面吧! 响应高达6秒 用户揭露Heroku修改路由“50倍圈钱”? [探讨]响应式设计四大原则 Linux Kernel 3.8发布 停止支持386设备 HTML5手机游戏引擎Devkit开源 程序员的一天:台湾个人移动游戏开发者 极限破解:利用低温环境读取Android加密数据 软件发布:网页快拷 软件发布:股海点金 软件发布:超级视频采集器 软件发布:网图 2001 软件发布:沸点群发邮件系统 软件发布:邮箱巡捕器 软件发布:功能强大易用的FTP服务器软件(XFTPSVR) 软件发布:邮件监听 软件发布:远程主机管理 软件发布:疯狂俄罗斯【4人网络版】0.26b1 软件发布:拼图 软件发布:凯蒂神卜2001 哪位高手作过网站建设?请帮忙!!! 软件发布:五子棋大战 光驱的问题 软件发布:扑克(版本:36.0,玩法的数量和版本号一样) 软件发布:鸿森万能证件打印系统 软件发布:密码盗窃器(超小版:30k) 软件发布:寝室多人共享上网计时计费器 软件发布:美萍安全卫士密码破解器 软件发布:整人蛀虫 SQL SERVER存储过程的问题!!!! 软件发布:词痴 软件发布:自动关机 软件发布:南易彩票选号系统 pfc基类庫是纯英字,谁有中文的。 软件发布:精灵英文输入法(写代码助手) 软件发布:QQSpy密码探测器98版 for 0425 高手请,为何在不同地方打开对话框会有不同的结果呢? 软件发布:《商务导航》 软件发布:amp player 豪华版 如何关闭XCOPY打开的窗口,详细一点 请援手:pfc程序如何再升级?(关于版本更新) 谁是高手,一个事务处理问题。 大家来聊聊:JBUILDER5比JUILDER4在那方面改进了!? 我们这个破烂小公司成天TMD瞎折腾! 根据用户名和密码登陆的问题! 大家来说一下,中程和高程证书在找工作时作用怎样 Dialog上放了一个group box,请问如何动态改变group box框框中的整个颜色?急呀! 用程序向表中插数据的问题? 怎样制作一个类似日历的控件?快快快! 做个调查:在上海delphi的前景如何?现在工资怎么样? 如何给graph控件的values赋值. c++Builder的悲哀历程,求助帮忙,各位大虾多指点 建议封杀e_lion,影响看贴情绪!杀无赦!!! 请教高手:我用vc6.0向导生成了一个Utility Project,不想用MFC AppWizard(exe)生成的基本类,可我无法编译我写的cpp(带winMain函数)文件,为何? 无任何理由,第一个进来者300分。当场结帐。 各位,是如何调试自己编写的servlet的,我使用jswdk每次,修改servlet后都要重启一次服务器,有没有什么好法子。 不看不知道。 在写servlet时,如果要输出一段文字的问题。 “瑞星2001病毒实时间控装载失败”? 一辆卡车运矿石,晴天每天可运20次,雨天每天客运12次,共运112次,这8天中有几天是雨天, 你哥哥的生日在三月份吗?是的.在3月12日.那天,是植树节.英语翻译. 教室里的男生人数是女生人数的三倍,后来走出去18名男生,这时教室里的男女生人数一样多.原来男女生各多少人 一辆卡车运矿石,晴天每天可运16次,雨天每天可运11次,这辆卡车一连几天共运了195次,平均每天运13次.这几天有多少天是雨天?有多少是晴天? 为推广普通话设计一条宣传标语,要运用一种修辞手法, 1:教室里男生是女生数的3倍,走出去18名男生后,教室里男女生人数相同,原来男生女生各有多少(用方程解,把方程步骤写出来)2:一队少先队员乘船过河时,如果每船做15人,还剩9人没上船,如 一辆卡车运石头,晴天每天可以运20次,雨天每天可以运12次,他一连运了112次,平均每天运14次,问这几天中有几天晴天,几天雨天?不用方程。 为推广普通话设计两条宣传标语 要求:紧扣主题 不超过十五个字 运用一种修辞手法 教室里男生是女生的80%,后来又进来20名女生,男生是女生的60%,男女生现在各有多少人? 一辆卡车给工地运砖,晴天每天可运12次,雨天每天可运8次,在三周时间里,共运了220次.这3周里晴天和雨天 推广普通话标语 教室里女同学的人数是男同学的3倍,又进来8个男同学后,女同学的人数还比男同学多6人.教室里有男女各多少人? 一辆汽车运矿石,晴天每天可运14次,雨天每天只呢运3次,这辆汽车运了17天,共运了139次,这些天有多少天天简单明了的要算是 [非常之急]推广普通话的标语对不起,按错回车键,现开始写详细内容:要短小精致的,出处不限(不要拿知道已经有的啦,越快越好,可能视回答情况加分哦!补充内容:我都看过的啦,来条不一样 教室里女同学的人数是男同学的3倍,又进来8个男同学后,女同学的人数还比男同学多6人.教室里原有男、女同学各几人? 一辆卡车运矿石,晴天每天可以运16吨,雨天每天可运11次,这辆卡车一连几天共运了195次,平均每天运13次,这几天中几天是雨天,几天是晴天?假设这几天都是晴天不能用方程 关于推普的标语麻烦各位了.要有创意的,幽默的. 教室里女同学的人数是男同学的3倍,又进来8个男同学后,女同学的人数还比男同学多6人,教室里原来有男女同学各多少人? 松鼠妈妈采松果,晴天可以采20个,雨天只能采十个.他一连几天采了120个,平均每天采12个这几天有几个雨天 以读书为话题写一条标语,至少运用一种修辞手法 美术组有男女若干名,已知女生人数的3分之1和男生人数的5分之1是21人,女生人数的4分之1和男生人数的5分之1是18人,男,女生各有多少人? 小松鼠采松子,雨天每天采12个,晴天每天可采20个.它一连几天采了112个松子,平均每天采14个,问这几天当问这几天当中有几天是晴天要用假设法 为营造书香校园氛围,请你以读书为话题拟写一条标语,至少用一条修辞手法. 某校美术组有102人,男生比女生多25分之1,男女生各多少人? 小松鼠跟妈妈采松子,他们晴天每天采30个,雨天每天采24个,采了一周后,他们发现晴天比雨天少采了6个,这周的晴天和雨天各有多少天? 安全教育的宣传标语,(用上一种修辞手法) 学校合唱队有50人,其中男生和女生人数的比是2:3,男女生各有多少人算式 请问;小松鼠采松子,晴天每天18粒,雨天每天采12粒,12天共采了204粒松子,在这期间有几天是雨天.;要列式. 拟标题(至少用一种修辞手法)某中学为帮助贫困山区的失学儿重返课堂,要在全校展开一次献爱心捐款、捐物、捐书活动.请你为这次活动拟一条校园标语(至少用一种修辞手法) 某小学原来男女生的比是5:7,后来又转来15名女生,这时男女生的比是2:3学校现有男生多少名?算式或解方程,但解方程最好是一元一次方程 松鼠采松果,晴天每天可采20个,雨天每天可才采12个,它一连几天采了112个松果,平均每天采14个,问这几天当中有几天是雨天? 为了营造读书的氛围,请你引用一句名言作为活动的主题标语.名言中至少包含一种修辞手法 1.某小学原来男女生的比是7:5,后来又转来12名女生,这时男女生的比是9:7,学校现有男生多少名?第一题不要用方程解!给我解释一下为什么这么做,2.用1,2,……,9这9个数字排成没有重复数字的九位 小松鼠采松果,晴天可以采35个,雨天可以采22个,它13天共采了403个松果.这期间晴天有多少天?(用方程解 男女生有若干人,男生与女生之比为人数4:3,后来女生走了12人,此时男生人数是女生的2倍求原男女生人数列方程,不算 某小学原有男女生的比是7:5,后来转来12名女生,这时男女生的比是9:7,学校现有男生多少名? 松鼠妈妈采松子晴天可以采20个雨天可以采12个他一连几天采了112个平均每天采14个问有几个晴天几个阴天 某班有男女人数的比为4:3,后来女生走了12名,这时男生人数恰好是女生的2倍,求原来男女生人数? 某小学原来男女生的比是7:5,后来又转来12名学生,这时男女生的比是9:7,学校现有男生多少名 植树节期间,某某单位在一段长10分之9千米的路上从头到尾等距离栽了46棵树,则相邻两棵树的距离是多少千米? 男女生有若干人男生与女生人数之比四比三后来走了十二名女生,这时男生人数恰好是女生人数的2倍,求原男生与女生各有多少人? 学校举行庆“六一”男女生大合唱,原计划合唱对中女生人数占合唱队总人数的60%,后来又增加了5名男生.这时女生和男生的比是6:5.合唱队原来有男生多少名? 今年植树节,学校参加植树活动,成活了250棵,还有8棵没有成活.这批树的成活率是多少?求算式! 阅览室里有男女生若干人,男生与女生若干人,男生与女生的人数之比为四比三,后来有十二名女生走了,这时,男生人数恰好是女生人数的二倍,求原来的男生女生的人数. 学校举行庆“建党90周年”大合唱,原计划合唱队中的女教师人数占合唱队总人数的40%,后来考虑到合唱效果,将其中5名女教师换成了5名男教师,这时女教师人数占总人数的30%.合唱队共有多少名 我国的植树节为什么定于3月12日? 某校六年级男生人数是女生人数的四分之三,后来转进3名女生,这时男生人数是女生人数的三分之二.现在这个班有多少名学生? 学校举行庆“六一”男女生大合唱,原计划合唱队中女生人数占合唱队总人数的40%,后来考虑到合唱效果(下将其中5名女生换成5名男生,这是女生与男生人数的比是3:7.合唱队共有男女生多少 植树节为什么订在3月12日 某校六年级男生人数是女生人数的2/3,后来转进2名男生,转走3名女生,这样男生人数是女生人数的3/4.原来 合唱队中男生人数是女生人数的5/6,后来又增加了3名女生,此时男生人数占合唱队总人数的5/12,合唱队现有男女生各多少人 英汉互译 1.国庆节2.五一劳动节3.植树节 某校六年级男生人数是女生人数的2/3,后来有转进2名男生,转轴3名女生,这是男生某校六年级男生人数是女生人数的2/3,后来有转进2名男生,转轴3名女生,这是男生人数是女生人数的75%。该校 同学们植树,如果每人植的数量是相同的,那么有14棵树没人植,如果每人植9棵,那么最最后一个同学就少3棵,有多少同学植多少棵? 小白兔采蘑菇,晴天每天采16个,雨天每天采11个,一共采了195个,平均每天采13个,这几天中有几天是雨天? 关于植树节英语日记.用过去式写一篇关于植树节和朋友去植树的过程,5句话以上.最好带有翻译.跪谢! 1、某班男女人数比是4:3,后来又转走2名男生,这时男女人数比6:5,女生有多少人?2、男职工比全厂职工的5分之3多60人,女职工是男职工的3分之1,一共有职工多少人?用算式,不要方程,麻烦大家了. 白兔妈妈采蘑菇,晴天每天采30个,雨天每天采12个.它一连采了20天,一共采了510个蘑菇,这些天中一共有多少个晴天,多少个阴天? 用英文翻译:你的祖母的生日是什么时候?7月12日 你的生日是什么时候?8月17日,你呢?3月12日,植树节 某班原来男生是女生的2/5,后来转来一名男生,这时男女生人数之比是3:7,问,男女生个多少人?帮下我!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn