The Navigator.vibrate()
method pulses the vibration hardware on the device, if such hardware exists. If the device doesn't support vibration, this method has no effect. If a vibration pattern is already in progress when this method is called, the previous pattern is halted and the new one begins instead.
If the method was unable to vibrate because of invalid parameters, it will return false
, else it returns true
. If the pattern leads to a too long vibration, it is truncated: the max length depends on the implementation.
Syntax
var successBool = window.navigator.vibrate(pattern);
pattern
- Provides a pattern of vibration and pause intervals. Each value indicates a number of milliseconds to vibrate or pause, in alternation. You may provide either a single value (to vibrate once for that many milliseconds) or an array of values to alternately vibrate, pause, then vibrate again. See Vibration API for details.
Passing a value of 0
, an empty array, or an array containing all zeros will cancel any currently ongoing vibration pattern.
Examples
window.navigator.vibrate(200); // vibrate for 200ms
window.navigator.vibrate([100,30,100,30,100,30,200,30,200,30,200,30,100,30,100,30,100]); // Vibrate 'SOS' in Morse.
Specifications
Specification |
Status |
Comment |
Vibration API |
Recommendation |
Linked to spec is the latest editor's draft; W3C version is a REC. |
Browser compatibility
| Desktop | Mobile |
---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | Android webview | Chrome for Android | Firefox for Android | Opera for Android | Safari on iOS | Samsung Internet |
---|
vibrate | Chrome
Full support
32 | Edge
Full support
≤79 | Firefox
Full support
16-
Full support
16
- Notes Until Firefox 26 included, when the vibration pattern was too long or any of its elements too large, Firefox threw an exception instead of returning
false (bug 884935). - Notes From Firefox 32 onwards, when the vibration pattern is too long or any of its elements too large, it returns
true but truncates the pattern (bug 1014581). - Notes Beginning in Firefox 72, this is not supported in cross-origin iframes.
-
Full support
11
- Prefixed Implemented with the vendor prefix: moz
| IE
No support
No | Opera
No support
No | Safari
No support
No | WebView Android
Full support
4.4.3-
Full support
4.4.3
- Notes Beginning in version 55, this is not supported in cross-origin iframes.
- Notes Beginning in version 60, this method requires a user gesture. Otherwise it returns
false .
| Chrome Android
Full support
32-
Full support
32
- Notes Beginning in Chrome 55, this is not supported in cross-origin iframes.
- Notes Beginning in Chrome 60, this method requires a user gesture. Otherwise it returns
false .
| Firefox Android
Full support
16-
Full support
16
- Notes Until Firefox 26 included, when the vibration pattern was too long or any of its elements too large, Firefox threw an exception instead of returning
false (bug 884935). - Notes From Firefox 32 onwards, when the vibration pattern is too long or any of its elements too large, it returns
true but truncates the pattern (bug 1014581). -
Full support
14
- Prefixed Implemented with the vendor prefix: moz
| Opera Android
Full support
Yes-
Full support
Yes
- Notes Beginning in Opera 47, this method requires a user gesture. Otherwise it returns
false .
| Safari iOS
No support
No | Samsung Internet Android
Full support
2.0-
Full support
2.0
- Notes Beginning in Samsung Internet 6.0, this is not supported in cross-origin iframes.
- Notes Beginning in Samsung Internet 8.0, this method requires a user gesture. Otherwise it returns
false .
|
---|
Legend
-
Full support
- Full support
-
No support
- No support
- See implementation notes.
- See implementation notes.
- Requires a vendor prefix or different name for use.
- Requires a vendor prefix or different name for use.
See also