This library was to be published hand-to-hand with my article on the Vibration API. You can also view the documentation.
Does my Device Support the API?
The vibration API is implemented in navigator.vibrate
. So calling the function makes your phone vibrate. You can test if your browser is recent enough to have the vibrate
function in navigator
.
Mozilla had their own implementation mozVibrate
so some browsers may support that instead.
var canVibrate = "vibrate" in navigator || "mozVibrate" in navigator;
if (canVibrate && !("vibrate" in navigator))
navigator.vibrate = navigator.mozVibrate;
However, this doesn't mean that your device can vibrate. Just that it's recent enough. There are a few requirements you need to meet.
- You need the hardware for it.
- The page needs to be visible.
- Browser-specific implementation prevents the vibration.
Usage
jquery.vibrate.js
You can embed using bower with bower install jquery.vibrate.js
. Or you can download the zip file and extract the build/jquery/* files.
The javascript files are located in build/jquery/jquery.vibrate.min.js.
Download and embed the code then initialize in one of the following ways.
// Vibration for 50ms on all .button on click
$(".button").vibrate();
// Vibrate for 20ms on click
$(".button").vibrate("short");
// Vibrate for 50ms on click
$(".button").vibrate("medium");
$(".button").vibrate("default");
$(".button").vibrate(50);
// Vibrate for 100ms on click
$(".button").vibrate("long");
// Vibrate for 40ms on touchstart
$(".button").vibrate({
duration: 40,
trigger: "touchstart"
});
// Vibrate twice
$(".button").vibrate({
pattern: [20, 200, 20]
});
Development
I'm using grunt and node for building the docs. Grunt and jasmine for testing. Check out the gruntfile.