--- 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);
传递一个 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. |
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
。