Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Битрикс Битрикс
01.03.2018

Битрикс. Вывод изображений в компоненте Блог как в FancyBox

В 1С-Битрикс для открытия изображений во всплывающем окне можно использовать встроенную библиотеку:

BX.viewImageBind()

Это стандартный функционал Битрикс, который работает без подключения сторонних lightbox-библиотек.

Пример использования

<script>
BX.viewImageBind(
    'blg-post-<?=$CurPost["ID"]?>',
    {showTitle: false},
    {tag:'IMG', attr: 'data-bx-image'}
);
</script>

Что делает BX.viewImageBind

Метод:

BX.viewImageBind()

автоматически:

  • находит изображения внутри блока;
  • открывает их по клику;
  • создает встроенный lightbox;
  • показывает изображения поверх страницы.

Первый параметр

'blg-post-<?=$CurPost["ID"]?>'

Это:

  • ID контейнера с изображениями.

Например:

<div id="blg-post-<?=$CurPost["ID"]?>">
    ...
</div>

Второй параметр

{showTitle: false}

Настройки просмотра изображения.

В данном случае:

  • отключается вывод заголовка изображения.

В своих проектах я использую серверную инфраструктуру Timeweb Cloud

VPS и облачные решения для стабильной работы сайтов на PHP и 1С-Битрикс — от корпоративных сайтов до интернет-магазинов и высоконагруженных веб-проектов.

Перейти на Timeweb Cloud
Реклама · ERID: CQH36pWzJqVJ4YD9t5y227AkMQdhpG2THarwRmX2g9tS8x

Третий параметр

{tag:'IMG', attr: 'data-bx-image'}

Указывает:

  • какие элементы обрабатывать;
  • по какому атрибуту искать изображения.

Как должен выглядеть HTML

Для работы изображения должны иметь:

data-bx-image

Пример:

<div id="gallery">

    <img
        src="/upload/img.jpg"
        data-bx-image
        alt=""
    />

</div>

Полный пример

<div id="gallery">

    <img
        src="/upload/photo1.jpg"
        data-bx-image
        alt=""
    />

    <img
        src="/upload/photo2.jpg"
        data-bx-image
        alt=""
    />

</div>

<script>
BX.viewImageBind(
    'gallery',
    {showTitle: false},
    {tag:'IMG', attr:'data-bx-image'}
);
</script>

Преимущества BX.viewImageBind

  • не нужно подключать jQuery;
  • не нужен Fancybox;
  • не нужен Lightbox;
  • уже встроено в Битрикс;
  • минимум JS-кода;
  • работает быстро.

Когда удобно использовать

  • галереи;
  • новости;
  • блог;
  • портфолио;
  • детальные страницы;
  • фотографии товаров.

Важно подключение ядра Bitrix

Для работы:

BX.viewImageBind()

должно быть подключено:

main.core

Обычно в шаблоне Битрикс оно уже подключено автоматически.

Как проверить подключение BX

Откройте консоль браузера и выполните:

console.log(BX)

Если объект существует — библиотека подключена.

Итог

BX.viewImageBind() — простой встроенный способ сделать lightbox изображений в 1С-Битрикс без сторонних библиотек.

Достаточно:

  • добавить data-bx-image;
  • указать ID контейнера;
  • вызвать BX.viewImageBind().
68 просмотров

Если возникли сложности

Помогу разобраться с настройкой, исправить ошибки и реализовать решение под ваш проект.

Поддержка сайтов на 1С-Битрикс

Поддержка сайтов на 1С-Битрикс: быстрое решение ошибок, консультации, обучение сотрудников и сопровождение сайта. 
Резервирую время под ваш проект для оперативной помощи и стабильной работы сайта.
Подробнее
Где заказы?

Почему один сайт стабильно приносит заявки, а другой годами просто «висит в интернете»?

В телеграм-канале «Где заказы?» я разбираю реальные ошибки бизнеса, SEO, сайты, рекламу, воронки продаж и показываю, почему компании теряют клиентов и как это исправить.

Без инфоцыганства и мотивационных цитат — только практика, кейсы и рабочие решения для бизнеса и веб-разработки.

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться