Спасибо за подборку. Только новая версия PhotoSwipe, в отличии от предыдущих, ориентирована не только на мобильные устройства. Я пытался сделать так, чтобы галереей было удобно пользоваться на любом устройстве.
Необходимо одно событие Click заменить на несколько: mousedown, keydown и touchstart.
Да, только надо не забыть вызвать stopPropagation на touchstart и mousedown, чтобы они вместе не сработали. И убедиться, что keydown сработал только один раз (при залипании от срабатывает несколько раз).
В идеале, если уж так сильно хочется ускорить веб приложение этим методом, то надо байндить и mousedown и click. И в клике проверять, сработал ли недавно mousedown. И при этом, надо не забыть про ghost click (событие click сработает на некоторых тач устройствах на 350-500ms позже чем mousedown/touchstart).
А если хочется ускорить приложение еще больше, то можно еще следить за событием mouseover, и начинать выполнять действие в нем. Или вообще следить за траекторией движения мыши, и предугадать куда пользователь кликнет.
Проще говоря, изначальный совет «замените click на mousedown и увеличьте скорость приложения» не очень корректный, и может больше навредить, чем помочь.
Неважно какой элемент. Вы упускаете суть, ваша демка не будет работать на устрйствах, в которых есть только клавиатура, и на некоторых тач устройствах. Вот вам пример — jsbin.com/vacubazehogu/4, попробуйте клавитурой на кнопки понажимать.
Очень прошу автора статьи вообще убрать этот «совет» из статьи. Ни в коем случае нельзя заменять click на mousedown. Не у каждого пользователя есть мышь, а как же клавиатура и тач устойства.
И немного упрощённый вариант — codepen.io/dimsemenov/pen/yyBWoR
Да, только надо не забыть вызвать stopPropagation на touchstart и mousedown, чтобы они вместе не сработали. И убедиться, что keydown сработал только один раз (при залипании от срабатывает несколько раз).
В идеале, если уж так сильно хочется ускорить веб приложение этим методом, то надо байндить и mousedown и click. И в клике проверять, сработал ли недавно mousedown. И при этом, надо не забыть про ghost click (событие click сработает на некоторых тач устройствах на 350-500ms позже чем mousedown/touchstart).
А если хочется ускорить приложение еще больше, то можно еще следить за событием mouseover, и начинать выполнять действие в нем. Или вообще следить за траекторией движения мыши, и предугадать куда пользователь кликнет.
Проще говоря, изначальный совет «замените click на mousedown и увеличьте скорость приложения» не очень корректный, и может больше навредить, чем помочь.