`

5个不可错过的HTML 5中的API

阅读更多
  这次接着介绍5个更多HTML 5的API。这些API还是很实用的。

1 fullscreen全屏api,可惜不是全部浏览器支持,播放视频,做游戏时有用
   

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);

launchFullScreen(document.getElementById("videoElement")); //点单独的与元素时启动 




2 page visiablity页面可见性判断的API
   这个可以用来判断当用户的焦点不在当前tab的时候触发,下面这个例子,当CHROME下运行时候,如果新建立一个TAB,并且焦点到了新的tab,则会发现原来的页面的标题的title属性显示为"hidden"了
  
var hidden, state, visibilityChange; 
if (typeof document.hidden !== "undefined") {
  hidden = "hidden";
  visibilityChange = "visibilitychange";
  state = "visibilityState";
} else if (typeof document.mozHidden !== "undefined") {
  hidden = "mozHidden";
  visibilityChange = "mozvisibilitychange";
  state = "mozVisibilityState";
} else if (typeof document.msHidden !== "undefined") {
  hidden = "msHidden";
  visibilityChange = "msvisibilitychange";
  state = "msVisibilityState";
} else if (typeof document.webkitHidden !== "undefined") {
  hidden = "webkitHidden";
  visibilityChange = "webkitvisibilitychange";
  state = "webkitVisibilityState";
}

// Add a listener that constantly changes the title
document.addEventListener(visibilityChange, function(e) {
  // Start or stop processing depending on state

}, false);


不错的关于这个功能的详细教程:
http://davidwalsh.name/page-visibility

3 getUserMedia api 获得访问媒体设备的API
   可以允许调用用户的媒体设备,比如camera等。
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); 
    };

  // 播放
  if(navigator.getUserMedia) { // Standard
    navigator.getUserMedia(videoObj, function(stream) {
      video.src = stream;
      video.play();
    }, errBack);
  } else if(navigator.webkitGetUserMedia) { // WebKit系列浏览器    navigator.webkitGetUserMedia(videoObj, function(stream){
      video.src = window.webkitURL.createObjectURL(stream);
      video.play();
    }, errBack);
  }
}, false);

 

  更具体的教程见:
http://davidwalsh.name/browser-camera


4 电池API
   可以获得电池的工作状态

var battery = navigator.battery || navigator.webkitBattery || navigator.mozBattery;


console.warn("Battery charging: ", battery.charging); // true
console.warn("Battery level: ", battery.level); // 0.58
console.warn("Battery discharging time: ", battery.dischargingTime);

//电池的监听 
battery.addEventListener("chargingchange", function(e) {
  console.warn("Battery charge change: ", battery.charging);
}, false);

    这个对移动设备很有效果,相关教程:
http://davidwalsh.name/battery-api
可惜这东西暂时只自mozilla下有效果

5 页面元素预加载 prefetch
  主要是浏览器加载完页面后,将其放到浏览器的cache中去,
<link rel="prefetch" href="http://davidwalsh.name/css-enhancements-user-experience" />


<link rel="prefetch" href="http://davidwalsh.name/wp-content/themes/walshbook3/images/sprite.png" />

  教程:http://davidwalsh.name/html5-prefetch
  
4
0
分享到:
评论

相关推荐

    学习HTML5不可错过的12家国外网站

    在实践学习中,HTML5 Rocks(http://www.html5rocks.com/en/)是一个极好的起点,这个由Google维护的网站提供了丰富的教程、文章和演示,涵盖了HTML5的各个方面。Dive into HTML5(http://diveintohtml5.org/)这本...

    HTML5 坦克大战

    5. 表单元素与交互设计:虽然坦克大战主要是通过Canvas进行图形渲染,但HTML5的表单元素和交互设计也是不可忽视的。比如,游戏的开始、暂停、重置等按钮,以及显示分数、生命值等信息的文本元素,都可能涉及到HTML5...

    HTML5.zip_HTML5课程设计_html课程设计

    HTML5是现代网页设计的核心,它是超文本标记语言(HTML)的最新版本,自2014年正式发布以来,已经极大地改变了...无论你是前端开发者还是希望提升网页设计技能的设计师,"HTML5课程设计"都是一个不容错过的学习资源。

    jquery 参考资料 内含几十个示例 初学者不可错过

    **jQuery 是一个强大的JavaScript库,它极大地简化了HTML文档遍历、事件处理、动画设计和Ajax交互。...通过学习和实践,你可以快速掌握这个强大的工具,并将其应用于实际项目中,提升网页开发效率。

    HTML5版切水果游戏 HTML5游戏极品

    HTML5的核心特性之一是Canvas元素,它是一个可编程的画布,允许开发者通过JavaScript来绘制图形。在切水果游戏中,Canvas用于渲染游戏场景,包括各种水果的动画效果、刀具切割的动作轨迹以及得分计数器等。开发者...

    HTML5 404页面

    其次,HTML5提供了丰富的表单控件,如、、等,虽然404页面通常不需要复杂的表单,但我们可以利用这些特性创建一个可定制的搜索框,帮助用户更方便地找到他们可能错过的页面。 此外,HTML5的离线存储功能(离线Web...

    基于融云H5网页实时聊天

    在现代互联网应用中,实时通信已经成为了一项必不可少的功能,特别是在社交、协作以及客户服务等领域。本文将深入探讨如何基于融云API实现H5网页的实时聊天功能。融云是一家提供即时通讯服务的公司,其API为开发者...

    不可错过的React.js 面试题集合整理(适合中高级).pdf

    - 事件处理函数接收一个SyntheticEvent实例,它具有与原生事件类似的API。 - React自动处理事件绑定,使得事件处理函数总是与正确组件的`this`上下文关联。 5. **代码复用策略**: - **高阶组件(HOC)**:函数...

    不可错过的react面试题pdf「务必收藏」.pdf

    在React中,组件可以看作是自包含的、可重用的代码块,它们接收props(属性)作为输入,并返回React元素(JSX)来描述应该在屏幕上看到什么。 2. **React事件机制**: - React不直接将事件绑定到DOM元素上,而是...

    HTML开发特效好东东不容错过

    本文将详细介绍如何在HTML5中使用地理定位API,并通过一个示例来展示其实现过程。 #### 二、HTML5地理定位API概述 HTML5地理定位API提供了一种标准化的方式来访问用户的地理位置信息。它包括两个主要的方法:`...

    五子棋inhtml5是一款使用Javascript开发的开源小游戏

    它展示了JavaScript在游戏开发中的实际应用,包括基本的事件处理、数据结构的运用以及动画效果的实现,这些都是游戏开发中不可或缺的部分。 总结来说,五子棋inhtml5是利用HTML5和JavaScript技术开发的一款开源小...

    不可错过的react面试题最全面超完整(跳槽用的).pdf

    - 阻止默认行为:React中必须显式调用`preventDefault()`,而不能依赖`return false`。 3. **React事件代理**: - React的事件代理机制是通过合成事件实现的,所有事件都在最外层处理,这样可以减少事件监听器的...

    jQuery基础教程(第4版)(国内第一本jQuery权威教程,一版再版,累计重印14次,不可错过的实战类经典技术著作!)1

    附录C是jQuery API的快速参考,方便开发者查找和查阅API函数。 jQuery之所以能够在众多JavaScript框架中脱颖而出,是因为其简洁的语法和强大的功能。jQuery的设计理念是简化前端开发,使得即便是对JavaScript不太...

    html5桌面通知知识点分享

    HTML5 Web Notification 桌面通知API是HTML5引入的一个重要特性,它解决了传统网页消息交互方式的局限性,如闪烁页面标题等。这一特性使得开发者能够创建类似桌面应用的通知,即使浏览器窗口最小化或被遮挡,用户也...

    java源码:HTML解析器 jsoup.rar

    Java源码:HTML解析器jsoup是一个非常重要的开源库,专为处理HTML文档而设计。在Web开发领域,解析和操作HTML是常见的需求,jsoup...如果你对Web开发、数据抓取或者Java编程感兴趣,那么这个源码是不容错过的学习材料。

    Firefox火狐浏览器官方36.0b5-mac版本dmg安装包

    《Firefox火狐浏览器36.0b5-mac版本安装详解》 Firefox火狐浏览器,作为全球知名的开源网络...尽管可能存在的不稳定因素需要用户有一定的容忍度,但对于喜欢尝鲜和关注技术发展的用户来说,这是一个不可错过的版本。

    青柚仿微信H5聊天系统即时通讯社交完整优化版,带安卓苹果端APP源码+视频教程.zip

    5. **API集成**:与后端服务器通过RESTful API进行数据交互。 三、安卓和苹果端APP源码 项目提供的Android和iOS源码意味着开发人员可以深入研究并自定义这些移动应用: 1. **原生开发**:Android使用Java或Kotlin...

    HTML5JJ:HTML5精讲源代码

    在这个名为"HTML5JJ-master"的压缩包中,我们可能找到一系列与HTML5相关的文件和目录,包括但不限于以下内容: 1. **结构元素**:HTML5引入了许多新的结构元素,如、、、、和等,它们帮助开发者更好地组织网页内容...

    非常好的完整商城源码不要错过

    8. **安全性**:商城系统需要处理敏感的用户数据,因此防止SQL注入、XSS攻击和CSRF攻击的安全措施是必不可少的。 9. **支付集成**:商城系统通常需要集成第三方支付平台,如支付宝、微信支付等,这涉及到API调用和...

Global site tag (gtag.js) - Google Analytics