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

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

Update compatibility data on GitHub 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 Notes Full support 16 Notes 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 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 Notes Full support 4.4.3 Notes 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 Notes Full support 32 Notes 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 Notes Full support 16 Notes 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 Prefixed Implemented with the vendor prefix: moz Opera Android Full support Yes Notes Full support Yes Notes 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 Notes Full support 2.0 Notes 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