Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с галереей Fancybox (https://javascript.ru/forum/misc/84693-rabota-s-galereejj-fancybox.html)

StartGames 17.11.2022 20:18

Работа с галереей Fancybox
 
Здравствуйте. Пишу вам так как нигде не нашел ответа. даже на официальном сайте галереи https://fancyapps.com/docs/ui/fancybox/

Есть такая галерейка. очень крутая, вопросов нету.

Но беда в том, что во вспыхивающем окне невозможно задать свой уникальный id или хотя бы класс. Там есть id https://prnt.sc/Uj8TObtSf7l8 но он постоянно меняется при открытии даже этой же картинки https://nimb.ws/KmiXoy (сайт как пример, на нем используется этот плагин).

Соответственно если на странице больше 1 галереи - тогда она уже не уникальная, так как привязаться к класу или иду нет возможности. Рушить этот механизм с id нет желания, ибо это наверное та еще мозго****.

Как по мне лучше задавать свой уникальный класс для всей галереи. Т.е. чтобы при открытии конкретной галереи сюда https://prnt.sc/Fp-p4VLTzENQ добавлялся нужный клас. Как это можно реализовать? Спасибо.

voraa 17.11.2022 20:49

Попробуйте привязаться к классу fancybox-container.
Если элементов с таким классом несколько, надо как то из них выбрать нужный. Как именно трудно сказать, не зная, что вам надо.

StartGames 17.11.2022 20:51

на данный момент сделал так:

При клике на саму карусель фото повесил ид. и при клике на одну из фоток срабатывает скрипт (под sid уникальный id модуля):

$('#dru{{ sid }}').click(function(){
                $('.fancybox-container').addClass('dru{{ sid }}');
            })


И соответственно в момент клика он вешает уникальный класс нужному контейнеру (он единственный при открытой галереи). При переключении фото в самой галереи он не исчезает, а при открытой по новой соответственно просто поновляет класс. На другую галерею не влияет, так как вызов добавления класса идет именно по нужному id галереи. Работает. Но возможно есть более правильное решение.

StartGames 17.11.2022 20:52

Цитата:

Сообщение от voraa (Сообщение 548987)
Попробуйте привязаться к классу fancybox-container.
Если элементов с таким классом несколько, надо как то из них выбрать нужный. Как именно трудно сказать, не зная, что вам надо.

только что также решил) спасибо за ваш ответ)

рони 17.11.2022 21:03

StartGames,
может это showClass

voraa 17.11.2022 21:13

Там еще есть mainClass
https://fancyapps.com/docs/ui/fancyb...ons/#mainClass
Вроде позволяет каждому контейнеру задать собственные классы. Тогда по ним их можно различать.

StartGames 17.11.2022 22:28

да к сожалению в том то и дело что этот функционал у них непонятно как работает) я пробовал и так:
$('[data-fancybox="dru_item"]').fancybox({
                loop: false,
                mainClass: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
                showClass: bbbbbbbbbbbbbb
            });


и так:
$('[data-fancybox="dru_item"]').fancybox({
                loop: false,
                mainClass: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                showClass: "bbbbbbbbbbbbbb"
            });


и так:
$('[data-fancybox="dru_item"]').fancybox({
                loop: false,
                mainClass: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
                showClass: 'bbbbbbbbbbbbbb'
            });


но он игнорирует это. дам параметр где повторение - отключить - работает, а вот то что связано с класами - игнорирует((

StartGames 17.11.2022 22:36

по идее понял... у меня стоит их 3я версия https://web.archive.org/web/20210325.../docs/#options а там значений mainClass или showClass нету((

StartGames 17.11.2022 22:44

епт)) ребята. вы красавцы))) натолкнули в нужном направлении. жаль не могу вам добавить + в карму так как сайт просит кому то другому это сделать...

в третьей ветке можно использовать переменные:
baseClass
и
slideClass
соответственно))

спасибо вам, вы лучшие))

StartGames 17.11.2022 22:49

оффтоп: специально походил по сайту и дал плюс в карму рандомным людям, чтобы дать + в карму вам) а то сайт почему то не хочет просто так давать +... еще раз спасибо)


Часовой пояс GMT +3, время: 20:40.