--- title: Navigator.vibrate() slug: Web/API/Navigator/vibrate translation_of: Web/API/Navigator/vibrate ---

{{APIRef("HTML DOM")}}

Navigator.vibrate() 方法使设备(有震动硬件)产生有频率的震动。若设备不支持震动,该方法将无效。若某震动方式已经在进行中(当该方法调用时),则前一个震动方式停止,新的取而代之。

该方法若因为提供无效的参数使得无法使设备震动,它将返回false,否则返回true。若振动方案导致长时间的震动,它会被截断:最大震动时长取决于每个浏览器的具体实现。

语法

var successBool = window.navigator.vibrate(pattern);
pattern
提供一个震动、暂停间隔的模式。每一个值表示交替震动或者暂停的毫秒数。你可以提供一个单个的值(震动一次的毫秒数)或者一个包含整数的数组来交替的震动、暂停、震动。详情参见 Vibration API

传递一个 0、一个空数组或者一个元素全部为 0 的数组会结束当前正在运行中的震动模式。

示例

window.navigator.vibrate(200); // vibrate for 200ms
window.navigator.vibrate([100,30,100,30,100,200,200,30,200,30,200,200,100,30,100,30,100]); // Vibrate 'SOS' in Morse.

规范

Specification Status Comment
{{SpecName('Vibration API')}} {{Spec2('Vibration API')}} Linked to spec is the latest editor's draft; W3C version is a REC.

浏览器兼容性

{{CompatibilityTable}}
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatNo}} {{CompatGeckoDesktop("11.0")}} {{property_prefix("moz")}}
{{CompatGeckoDesktop("16.0")}} (no prefix) [1]
{{CompatNo}} {{CompatNo}} {{CompatNo}}
Feature Android Webview Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatVersionUnknown}} {{property_prefix("webkit")}}
{{CompatVersionUnknown}} (unprefixed) [2][3]
{{CompatVersionUnknown}} {{property_prefix("webkit")}}
{{CompatVersionUnknown}} (unprefixed) [2][3]
{{CompatGeckoMobile("11.0")}} {{property_prefix("moz")}}
{{CompatGeckoMobile("16.0")}} (no prefix) [1]
{{CompatNo}} {{CompatVersionUnknown}}[3] {{CompatNo}}

[1] 当震动模式太长或者其中一次震动的时长太长时,截至 Firefox 26,Gecko 将会抛出一个异常,而不是返回 false ({{bug("884935")}})。从 Firefox 32 开始,Gecko 返回 true,但是会将该模式截断 ({{bug(1014581)}})。

[2] 从 Chrome 55 开始,跨域的 iframe 中不支持该 API。

[3] 从 Chrome 60/Opera 47 开始,该方法需要一个用户手势。否则会返回 false

更多