Привет! скиньте пожалуйста пример подключения JQuery плагина FancyBox и инициализации его на странице, буду признателен если опишите процесс по пунктам что, куда, зачем и как.
Привет! скиньте пожалуйста пример подключения JQuery плагина FancyBox и инициализации его на странице, буду признателен если опишите процесс по пунктам что, куда, зачем и как.
В простом случае он ничем не отличается от подключения его без
i-bem
: добавить скрипт на страницу и вперед.Если же хочется завернуть его в БЭМ-блок, то тут возможны варианты. Например (исхожу из того, что в качестве старта используется
project-stub
):Создаем
common.blocks/fancybox/fancybox.js
со следующим содержанием:Шаблон
common.blocks/fancybox/fancybox.bemhtml.js
, чтобыi-bem
знал, что на блоке нужно инициализировать JS:И подключаем в сборку стили с помощью
common.blocks/fancybox/fancybox.css
:спасибо, все работает! но тут же возникли еще несколько вопросов: 1) только borschik можно подтягивать зависимости или есть другие варианты подключения 2) что за магия, вижу что в css файле пути к картинкам выставились правильно 3) как повторно использовать fancybox для другого блока например: block: 'test'
За магию с путями к картинкам тоже отвечает
borschik
.Вместо него можно использовать что угодно, что доставит код
fancybox
в браузер. Хоть через тег<script>
его подключить, хоть прямо в файл руками скопировать вместо комментария, хоть написать скрипт, который будет это делать в процессе сборки.спс, если можно на последок не могли бы помочь: хочу создать модуль на основе fancybox и для разных блоков вызывать с разными параметрами в зависимости от ситуации, но пока что не могу разобраться.
В BEMJSON параметры можно пробрасывать в JS через поле js:
Значение этого поля доступно в JS-коде блока в
this.params
. Соответственно, для инициализацииfancybox
с параметрами, достаточно вызывать его так:спасибо!
Привет! есть получше решение группировки изображений
rel='group'
?пример выше не вариант, не могу пробросить параметры
Я не уверен, что правильно понимаю проблему. Если речь о том, что на странице есть куча айтемов, которые должны превратиться в сгруппированный fancybox, то я бы блоком
fancybox
назначил их общего родителя, а сами «слайды» — его элементомslide
.Получилось бы что-то типа:
да спс в принципе это решает данную проблему
Добрый день!
Есть вопросы по использованию fancyBox, по заповедям БЭМ. Для отработки вопросов, возьмем за пример блок с картинками. При клике на картинку всплывает окно просмотра, листаются картинки, закрывается. Пример здесь, первая галерея - http://websketches.ru/plugins/fancybox Блок имеет реализацию: JS, BEMHTML, CSS - по схеме из этой темы .
1)
jquery.fancybox.js
- как правильно подключить вbundles/*.bemjson.js
, что бы производительность не пострадала? Вhead
, перед закрывающим тегомbody
, на своем хостинге или cdn? 2) Как произвести настройки fancybox? Непосредственно в../../node_modules/fancybox/dist/js/jquery.fancybox.js
? Если да, то при сборке в продакшн необходимо в настройках сборщика это декларировать, что бы на выходе получить его? Или каким способом это нужно делать? 3) Самый не понятный момент - как вbundles/*.bemjson.js
декларировать картинки, или отдельно блок сdisplay: none
, и ссылаться на него ?Ожидается на выходе получить галерею, как в приведенном примере. Прошу сильно не пинать, первый опыт использования fancyBox, знание JS - 0.5 из 5
Если подключать в BEMJSON, то логично подключить после основного JS-бандла в секцию
scripts
блокаpage
, что в результате отрендерит его перед закрывающимbody
.Зависит от того, насколько популярен CDN и где расположены сервера. В теории CDN должен быть эффективнее, конечно.
Однако есть еще вариант с тем, чтобы включить код
jquery.fancybox.js
в основной JS-бандл, тогда экономится лишний HTTP-запрос. Сделать это можно с помощьюborschik
.Стоит создать блок на уровне проекта и конфигурировать из него. Изменять исходный код библиотеки определенно не стоит — это, как минимум, лишает возможности обновляться на новые версии в будущем.
Не очень понимаю, что подразумевается в этом вопросе. Нужны подробности.
То есть следующий подход - верный?
href
,rel
jquery.fancybox.js
с настройками, добавить его в реализацию JS -fancybox.js
(для переопределения настроек), где код инкапсулирован в модуль и есть зависимость от jqueryи должно сработать, и всё по БЭМ. Или в чем то ошибаюсь?
В целом похоже на правду.
Но есть несколько моментов:
{ href: '../../node_modules/fancybox/demo/1_b.jpg', rel: 'img-group' }
).block('view-img')(tag()('a'))
У меня сработало))) Не знаю как, но сработало.
Совершенно точно сработало не то, что ожидалось ;)
что ожидал, то и получил. Это не первый раз уже - трюк со вложенностью.
Да, казалось бы, но нет :) https://goo.gl/8EFpfa — шаблон применяется ко всем
b2
, не зависимо от вложенности вb1
.Да, понял о чем речь. Спасибо
Добрый день!
fancybox
так и не заработал Консоль выдает ошибкуОформил gist с файлами
common.blocks/fancybox
Как вижу проблему:
Возможно из-за сборки
gulp
, непонимания, мистических влияний и т.д.Прошу помочь разобраться, маленькими шажками привести к рабочему состоянию
fancybox
Есть подозрения на параметр - строка 2018
jquery.fancybox.js
добавил в gist третий параметр - jQuery Помогите пожалуйста