Привет! скиньте пожалуйста пример подключения 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,reljquery.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 Помогите пожалуйста