#javascript #jquery #lightbox #mousewheel
#javascript #jquery #лайтбокс #колесо мыши
Вопрос:
Я хочу объединить плагин fslightbox.js
lightbox: https://fslightbox.com
с jquery-mousewheel
помощью плагина https://github.com/jquery/jquery-mousewheel
добавить функциональность колеса мыши, чтобы при прокрутке лайтбокса вверх или вниз пользователь переходил к следующему или предыдущему снимку.
это мой js-код, но lightbox.on('mousewheel')
он не запускается, есть идеи, как заставить его работать?
var lightbox = $('.fslightbox-container');
lightbox.on('mousewheel', '.fslightbox-absoluted', function (e) {
if (e.deltaY>0) {
lightbox.trigger('.fslightbox-slide-btn-container-next"');
} else {
lightbox.trigger('.fslightbox-slide-btn-container-previous');
}
e.preventDefault();
});
HTML:
<div id="mygallery" >
<a href="./app/img/ilustraciones-1.png" data-fslightbox>
<img src="./app/img/ilustraciones-1.png"/>
</a>
<a href="./app/img/ilustraciones-2.png" data-fslightbox>
<img src="./app/img/ilustraciones-2.png"/>
</a>
<a href="./app/img/ilustraciones-3.png" data-fslightbox>
<img src="./app/img/ilustraciones-3.png"/>
</a>
</div>
Ответ №1:
Для начала у вас есть синтаксическая ошибка, которую подтвердит консоль ошибок.
lightbox.trigger('.fslightbox-slide-btn-container-next"'); //<-- "
Во-вторых, вы, похоже, делаете значительные предположения о том, что trigger()
и как это работает, полагая, что вы передаете ему селектор, и он запускает событие щелчка. Это не так, как это работает. Я думаю, вы имеете в виду:
lightbox.find('.fslightbox-slide-btn-container-next').click();
Комментарии:
1. Я понимаю, но все же пытаюсь изменить ваш синтаксис, чтобы лайтбокс не переходил к следующей / предыдущей фотографии при действии колеса мыши
2. Опечатка с моей стороны — я пропустил
.
с передней части селектора. Если это все еще не работает, убедитесь, что элемент, который вы ищете с помощью этого селектора, действительно найден.3. это не работает. Я добавил console.log(событие. deltaX, событие. deltaY, событие. deltaFactor); и если я проверю консоль. журнал, он даже ничего не показывает
4. Затем вам нужно выполнить некоторые шаги по отладке, чтобы убедиться, что код выполняется в каждом гейте, т. Е. Что Условия возвращают true . Настройте скрипку после того, как вы это сделали, если она все еще не работает.