学习JavaScript之手机振动API

学习JavaScript之手机振动API

现代浏览器里提供的新的API越来越倾向于移动手机应用,而不是传统的桌面应用,比如JavaScript地理位置信息API。另外一个只针对手机应用的JavaScript API就是振动(Vibration) API。很明显,这个API就是允许mobile程序员使用JavaScript调用手机的振动功能,并且能设定振动的方式和时长。

相关学习推荐:javascript视频教程

判断浏览器对振动API的支持情况

一个好的习惯就是在使用之前要检查一下当前你的应用环境、浏览器是否支持振动API。下面就是检测的方法:

// Standards ftw!var supportsVibrate = "vibrate" in navigator;

登录后复制

在window.navigator对象里就只有一个关于振动的API:vibrate。

振动API基础应用

这个navigator.vibrate函数可以接受一个数字参数,也可以接受一个数字数组,当使用数组参数时,奇数位的数值是震动秒数,偶数位为等待秒数。

立即学习“Java免费学习笔记(深入)”;

// 振动1秒navigator.vibrate(1000);// 振动多次// 参数分别是震动3秒,等待2秒,然后振动1秒navigator.vibrate([3000, 2000, 1000]);

登录后复制

如果想停止震动,你只需要向navigator.vibrate方法里传入0,或一个空数组:

// 停止振动navigator.vibrate(0);navigator.vibrate([]);

登录后复制

需要提醒的是,对navigator.vibrate方法的调用并不会引起手机循环振动;当参数是一个数字时,振动之后发生一次,然后就停止下来。当参数是数组时,震动会按数组里的值震动,然后就停止振动。

持续震动

我们可以简单的使用setInterval 和 clearInterval 方法产生让手机持续震动的效果:

var vibrateInterval;// Starts vibration at passed in levelfunction startVibrate(duration) {navigator.vibrate(duration);}// Stops vibrationfunction stopVibrate() {// Clear interval and stop persistent vibrating if(vibrateInterval) clearInterval(vibrateInterval);navigator.vibrate(0);}// Start persistent vibration at given duration and interval// Assumes a number value is givenfunction startPeristentVibrate(duration, interval) {vibrateInterval = setInterval(function() {startVibrate(duration);}, interval);}

登录后复制

上面的这段代码只是针对振动参数是一个数字的情况,如果参数是数组,你还需要计算一下它的总共持续时间,然后根据它的特征来进行循环。

使用振动(Vibration) API的场景

这个API显然是针对移动手机设备的。当开发手机WEB移动应用时,它是一个很好的警示工具,当在开发Web游戏或多媒体应用时,这个振动功能更是不可或缺的好技术。比如说,当用户在用一个手机玩你的WEB游戏时,当游戏中发生爆炸,而你让手机也跟随着振动,是不是一种很出色的用户体验?

你对这个JavaScript振动API的感觉如何?是认为它会很快流行起来?还是没有多大用处?

以上就是学习JavaScript之手机振动API的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2726954.html

(0)
上一篇 2025年3月7日 23:39:52
下一篇 2025年2月22日 20:55:48

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • javascript 从定义到执行,需要知道的事

    javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境 栈、全局对象、执行环境、变量对象、活动对象、作用域和作用域链等,这些概念正是JS引擎工作的核心组件。…

    2025年3月7日
    200
  • JavaScript和CSS交互的5种方法的学习

    随着浏览器不断的升级改进,CSS和JavaScript之间的界限越来越模糊。本来它们是负责着完全不同的功能,但最终,它们都属于网页前端技术,它们需要相互密切的合作。我们的网页中都有.js文件和.css文件,但这并不意味着CSS和js是独立不…

    2025年3月7日
    200
  • 理解JavaScript之Async/Await的新语法

    受到Zeit团队博文的启发,我们的PayPal团队不久之前将服务器端数据库迁移到了Async/Await上。我想要和你们分享一下我的经验。 首先我们先来了解两个术语: Async函数Await 关键词 你们总是将Async和Await放在一…

    2025年3月7日
    200
  • 必备的12个JavaScript技巧

    在这篇文章中将给大家分享12个有关于JavaScript的小技巧。这些小技巧可能在你的实际工作中或许能帮助你解决一些问题。 相关学习推荐:javascript视频教程 使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查…

    2025年3月7日
    200
  • 学习JavaScript地理位置信息API

    对于一个Web开发程序员来说,开发工作中一个最有意思的方面就是获取地理位置信息;试想一下,浏览你的网页的用户是在什么地方?程序员可以根据用户的地理位置信息来调整网站的语言、特定产品介绍等。下面我们将要演示的就是通过浏览器里JavaScrip…

    2025年3月7日
    200
  • 如何用JavaScript检测离线/在线状态

    这两年离线浏览技术越来越流行,最常见的就是HTML5移动应用里,有很多普通的Web app也使用了这些技术。但是,新技术的出现有时会给我们WEB开发人员带领额外的苦恼,比如,如何判断用户现在是在线还是离线?幸好,有矛就有盾,JavaScri…

    2025年3月7日
    200
  • 详解javascript对象的数据属性与访问器属性

    创建对象的方式有两种:第一种,通过new操作符后面跟Object构造函数,第二种,对象字面量方式。如下 var person = new Object();person.name = ‘Nicy’;person.age = 21;perso…

    2025年3月7日
    200
  • 一起了解JS中的深拷贝与浅拷贝

    浅拷贝 浅拷贝是对象的逐位复制。创建一个新对象,该对象具有原始对象中值的精确副本。如果对象的任何字段是对其他对象的引用,则只复制引用地址,即,复制内存地址。 大白话讲就是,浅拷贝是对对象地址的复制,并没有开辟新的栈,也就是复制的结果是两个对…

    2025年3月7日
    200
  • javascript之ssm+vue前后端分离框架整合实现

    前言 本文针对Spring+SpringMVC+Mybatis后台开发框架(基于maven构建)与vue前端框架(基于webpack构建)的项目整合进行介绍,对于ssm和vue单独项目的搭建不作为本文的重点,而着重介绍两者之间交互的要点。 …

    2025年3月7日 编程技术
    200
  • 了解Typescript和Javascript之间的差异

    TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 JavaScript 之间又有什么样的区别呢?…

    2025年3月7日
    200

发表回复

登录后才能评论