Сегодня я хотел бы написать о библиотеке jQuery Vibrate.js. Эта библиотека позволяет настроить вибрацию на мобильных устройствах, можно выбрать различные режимы с разной продолжительностью вибрации.
Вибрация в мобильном устройстве позволяет предупредить пользователя о сообщении или звонке, показать обратную отдачу в играх.
Для подключения библиотеки нужно использовать файл jquery.vibrate.min.js вкупе с jQuery.

<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="build/jquery/jquery.vibrate.min.js"></script>

Представленные ниже примеры показывают вибрацию при нажатии на элемент с id=”example”.
$("#example").vibrate(); // Стандартная 50 миллисекундная вибрация.
$("#example").vibrate("short"); // Короткая 20 миллисекундная вибрация.
$("#example").vibrate("long"); // Длительная 100 миллисекундная вибрация.

Следующий пример вызывает вибрацию при нажатии на элемент, по времени до 3000 миллисекунд.
$("#example").vibrate({
 duration: 3000,
 trigger: "touchstart"
});

Вибрация при нажатии на элемент, длительностью 50 миллисекунд.
var item = $("#example");
item.vibrate("medium");
item.vibrate("default");
item.vibrate(50);
$("#example-five .button").vibrate({
 duration: 2000,
 trigger: "touchstart"
});

Можно «задать бит», и сыграть виброэлементом вашего смартфона, например, имперский марш.
Первый параметр задает длительность вибрации, второй — задает паузу, и так далее.
navigator.vibrate([500,110,500,110,450,110,200,110,170,40,450,110,200,110,170,40,500]);

Вибрация с длинной, взятой из параметра кнопки.
$(“button").each(function() {
 $(this).vibrate(parseInt($(this).text(), 10));
});

Представленный ниже код позволяет определить мобильность устройства и запустить вибрацию во время прикосновения к экрану.
var isMobile = (/iPhone|iPod|iPad|Android|BlackBerry/).test(navigator.userAgent); // Список мобильных устройств.

$(".button").on(isMobile ? 'touchstart' : 'mousedown', function(e) { // Проверка прикосновения.
    navigator.vibrate(Infinity); // Бесконечная вибрация.
});

$(".button").on(isMobile ? 'touchend' : 'mouseup', function(e) { 
    navigator.vibrate(0); // Остановка вибрации.
});

Конечно, нужно отметить про недостатки данной библиотеки. Она не работает с браузерами: iOS Safari, Opera Mini, IE, BlackBerry.
Тут можно загрузить библиотеку и опробовать ее в действии.
Поделиться с друзьями
-->

Комментарии (16)


  1. xsash
    30.06.2016 13:44
    +1

    iOS Safari (указано в конце статьи) и iOS Chrome — не работают


  1. xakepmega
    30.06.2016 13:55
    +3

    Зачем городить либу для такого простого Api?


    1. Trikstor
      30.06.2016 13:56

      Чтобы знали.


    1. k12th
      30.06.2016 14:30
      +3

      Да еще и jQuery пристегивать.


  1. raveclassic
    30.06.2016 16:10

    А будет библиотека jquery.location.js для управления навигацией?


    1. Trikstor
      30.06.2016 16:12

      Можно написать.


  1. Miraage
    30.06.2016 16:56
    +4

    Когда выйдет уже стабильная версия плагина jQuery для сложения чисел?


    1. k12th
      30.06.2016 17:19
      +3

      Зачем jQuery, я использую angular.addition и доволен.


    1. ChALkeRx
      30.06.2016 17:22
      +2

      Три года как.


      https://github.com/baphomet-berlin/jQuery-basic-arithmetic-plugin


      Пользуйтесь!


  1. GIum
    30.06.2016 18:00
    +1

    Использования jQuery как основы для плагина выглядит совсем притянутым. Но автор решил превратить это в плюс и в результате глядя на такой код

    $("#example").vibrate("short"); 
    

    совершенно не ясно, что происходит т.к. про клик тут ни слова.
    Непонятно, почему не вот так?

    $("#example").on("click", () => { vibrate("short"); }); 
    

    тут и привязки к jquery никакой нету.


    1. Trikstor
      30.06.2016 18:14

      Синтаксис данного плагина несколько отличается от jQuery, таким образом, для события click требуется меньше кода. Это плюс данного плагина, событие click объявить проще чем на jQuery.


      1. GIum
        30.06.2016 18:31

        Что именно плюс? Неявность в написании? Скажите честно, Вы бы читая такой код догадались бы, что должен произойти клик чтобы сработал плагин?


        1. raveclassic
          30.06.2016 19:05

          я, когда увидел $(..).vibrate() , подумал, что должна запуститься анимация…
          какого же было разочарование


  1. Trikstor
    30.06.2016 18:36

    Представленные ниже примеры показывают вибрацию при нажатии на элемент с id=”example”.


  1. lodas
    02.07.2016 15:54

    Спасибо, очень важная информация. Не совсем понятна идея использования библиотеки, я так понимаю можно написать сайт с использованием библиотеки jquery.vibrate.min.js в котором по таймеру запускать вибрацию на телефоне. Но как происходит передача сигнала именно на мой телефон? По блютусу? Требуется чтобы комп рядом всегда был включенным и с запущенным браузером?


    1. Trikstor
      02.07.2016 15:56

      Вы заходите со смартфона на сайт, и запускается вибрация.