Современные браузеры поддерживают вибрацию, которая есть в смартфонах и планшетах. Вы можете добавить поддержку вибрации в своих сценариях. На данный момент Vibration API не является стандартом, а пока носит рекомендательный характер. Из современных браузеров вибрацию не поддерживают Internet Explorer и Safari. Firefox (15+), Opera (19+) и Chrome (32+) поддерживают (указаны версии, когда поддержка стала полноценной. До этого в некоторых версиях поддержку нужно было включить в настройках).
За вибрацию отвечает метод vibrate(), который относится к window.navigator. У метода один параметр, который принимает целое число или массив целых чисел. Число отвечает за промежуток времени в миллисекундах, в течение которого будет вибрировать устройство. Если вы указываете массив чисел, то чётные числа отвечают за вибрацию, а нечётные - за паузу между вибрацией.
Чтобы убедиться, что браузер поддерживает метод вибрации, можно сделать проверку
if (window.navigator && window.navigator.vibrate) {
// поддерживается
} else {
// не поддерживается
}
Вибрация на одну секунду включается следующим образом.
navigator.vibrate(1000);
Сложная вибрация - три раза с паузой на полсекунды между ними. Первые два раза вибрация длится одну секунду, а на третий раз вибрация длится две секунды.
navigator.vibrate([1000, 500, 1000, 500, 2000]);
Чтобы остановить вибрацию
navigator.vibrate(0);
// или так
navigator.vibrate([]);
Напишем небольшой демонстрационный пример. Тестировать пример следует на мобильных устройствах. В большинстве случаев это будут смартфоны и планшеты на Android.
Исходник
<div class="buttons-wrapper">
<button id="button-play-v-once" class="button-demo">Вибрировать один раз</button><br>
<button id="button-play-v-thrice" class="button-demo">Вибрировать три раза</button><br>
<button id="button-stop-v" class="button-demo">Стоп</button>
</div>
<script>
window.navigator = window.navigator || {};
if (navigator.vibrate === undefined) {
alert("Вибрация не поддерживается");
['button-play-v-once', 'button-play-v-thrice', 'button-stop-v'].forEach(function(elementId) {
document.getElementById(elementId).setAttribute('disabled', 'disabled');
});
} else {
alert("Вибрация поддерживается. Нажмите на кнопку");
document.getElementById('button-play-v-once').addEventListener('click', function() {
navigator.vibrate(1000);
});
document.getElementById('button-play-v-thrice').addEventListener('click', function() {
navigator.vibrate([1000, 500, 1000, 500, 2000]);
});
document.getElementById('button-stop-v').addEventListener('click', function() {
navigator.vibrate(0);
});
}
</script>