Отключить навигацию с помощью клавиатуры на jQuery prettyphoto - PullRequest
1 голос
/ 01 октября 2011

Мы используем prettyPhoto:

http://www.no -margin-for-errors.com / проекты / prettyphoto-JQuery-Lightbox-клон / Для нашего портфолио. Это позволяет нам показывать видео, изображение или SWF. Когда мы отображаем SWF-игру, в которой используются клавиши со стрелками, она конфликтует с симпатичной навигацией по фотографиям. Посмотрите этот пример игры, который мы добавили:

http://www.letsdesign.co.uk/#!prettyPhoto/0/ Это хуже в IE на ПК. однако игра доступна для Firefox для Mac, это состояние, которое мы хотели бы для всех браузеров.

Мы хотели бы найти способ отключить навигацию в PrettyPhoto (с помощью клавиш со стрелками), чтобы она не конфликтовала с какими-либо внутриигровыми элементами управления. У нас есть другие игры, но мы не можем добавить их, пока это не исправлено. У кого-нибудь есть решение этого? Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 25 ноября 2013

После попытки отключить сочетания клавиш, в том числе (влево и вправо), установив для параметра «keyboard_shortcuts» значение false, я прибег к переопределению метода changePage и вызвал метод из метода changepicturecallback. Я считаю, что это позволяет легко выбирать различные варианты prettyPhoto без необходимости редактировать основные файлы (что я бы никогда не рекомендовал).

$("a[rel^='prettyPhoto']").prettyPhoto({
  changepicturecallback: function(){
    $.prettyPhoto.changePage = function(){};
  },
});

Взгляните на параметры prettyPhoto, которые очень эффективны при правильном сочетании.

1 голос
/ 20 ноября 2012

Я нашел очень хакерский способ отключить функцию клавиш со стрелками.В моем файле jquery.prettyPhoto.js я только что закомментировал $.prettyPhoto.changePage('previous'); и $.prettyPhoto.changePage('next');.

Это будет означать, что навигация по стрелкам не работает вообще, но мне все равно она не нужна для проекта,

1 голос
/ 25 января 2012

В JavaScript-файле Prettyphoto установите keyboard_shortcuts в false

0 голосов
/ 29 октября 2014

К сожалению, есть ошибка.Я изменил код, и теперь он отлично работает.

Вот ошибка.Вот фрагмент кода, подобный следующему:

switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous");t.preventDefault();break;case 39:e.prettyPhoto.changePage("next");t.preventDefault();break;case 27:if(!settings.modal)e.prettyPhoto.close();t.preventDefault();break

замените его следующим:

if (settings.keyboard_shortcuts) { switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous");t.preventDefault();break;case 39:e.prettyPhoto.changePage("next");t.preventDefault();break;case 27:if(!settings.modal)e.prettyPhoto.close();t.preventDefault();break}

Теперь настройка автора с именем keyboard_shortcuts будет отлично работать, если вы установите значение false.

Это действительно для минимизированного кода, я не проверял, существует ли ошибка в неминифицированном коде (если есть).

Удачи!

Джордж

...