前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS手机振动API vibrate方法

JS手机振动API vibrate方法

作者头像
小弟调调
发布2018-10-18 10:37:35
4.8K0
发布2018-10-18 10:37:35
举报
文章被收录于专栏:埋名埋名

判断兼容

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

代码语言:javascript
复制
var supportsVibrate = "vibrate" in navigator;

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

振动API基础应用

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

代码语言:javascript
复制
// 振动1秒
navigator.vibrate(1000);
// 振动多次
// 参数分别是震动3秒,等待2秒,然后振动1秒
navigator.vibrate([3000, 2000, 1000]);

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

代码语言:javascript
复制
// 停止振动
navigator.vibrate(0);
navigator.vibrate([]);

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

持续震动

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

代码语言:javascript
复制
var vibrateInterval;
// 开始震动
function startVibrate(duration) {
    navigator.vibrate(duration);
}
// 停止震动
function stopVibrate() {    
    // 清除间隔和停止持续振动
    if(vibrateInterval) clearInterval(vibrateInterval);
    navigator.vibrate(0);
}
//在给定的持续时间和间隔时开始持续的振动
//假定一个数字值
function startPeristentVibrate(duration, interval) {
    vibrateInterval = setInterval(function() {
        startVibrate(duration);
    }, interval);
}

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JSdig 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 判断兼容
  • 振动API基础应用
  • 持续震动
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档