Как в fancybox добавить галерею с picture?

81
07 марта 2022, 22:40

вот код но надо не картинку ,а picture

<picture>
    <source srcset="https://www.stena.ru/sites/default/files/stena/main_slider/01_stena_tintoflex_01_480.jpg" media="(max-width: 480px)">
        <source srcset="https://www.stena.ru/sites/default/files/stena/main_slider/01_stena_tintoflex_01_900.jpg" media="(max-width: 900px)">
        <source srcset="https://www.stena.ru/sites/default/files/stena/main_slider/01_stena_tintoflex_01_1360.jpg" media="(max-width: 1360px)">
        <source srcset="https://www.stena.ru/sites/default/files/stena/main_slider/01_stena_tintoflex_01_1920.jpg" media="(min-width: 1361px)">
        <img src="https://www.stena.ru/sites/default/files/stena/main_slider/01_stena_tintoflex_01_900.jpg" alt="">
      </picture>


$('.big-prod-cart_interiors').on('click', function () {
        $.fancybox.open(
            [
                {
                    src: '../img/sm_1_03_1920_910_tr.jpg',
                    opts: {
                        color: 'Цвет TU2101',
                        caption: 'Гостинная',
                        thumb: '../img/sm_1_03_1920_910_tr.jpg'
                    }
                },
                {
                    src: '../img/ar_1_05_1920_910_tr.jpg',
                    opts: {
                        color: 'Цвет TU2101',
                        caption: 'Second caption Second caption',
                        thumb: '../img/ar_1_05_1920_910_tr.jpg'
                    }
                }
            ], {
            loop: false,
            buttons: ["close"],
            width: 1920,
            height: 969,
            // fullScreen: { autoStart: true },
            margin: 0,
            padding: 0,
            arrows: false,
            infobar: false,
            baseClass: "fancybox-custom-layout",
            btnTpl: {
                close: '<button data-fancybox-close="" class="fancybox-button fancybox-button--close" title="Close"><span>✕</span></button>',
            },
            caption: function (instance) {
                return '<div class="fancybox-text"><p class="fancybox-color">' + this.opts.color + '</p><p class="fancybox-title">' + this.opts.caption + '</p></div>' + '</div><div class="fancybox-infobar"><span data-fancybox-index=""></span>&nbsp;/&nbsp;<span data-fancybox-count=""></span></div><div class="fancybox-navigation"><button data-fancybox-prev="" class="fancybox-button fancybox-button--arrow_left" title="Previous"></button><button data-fancybox-next="" class="fancybox-button fancybox-button--arrow_right" title="Next" disabled=""> </button></div>';
            },
        }
        );
    });
Answer 1

попробовал так .но думаю можно удобнее

$('.big-prod-cart_interiors').on('click', function () {
        $.fancybox.open(
            [
                {
                    type: "html",
                    src: '<picture><source srcset="../img/sm_1_03_360_910_tr.jpg" media="(max-width: 360px)">' +
                        '<source srcset="../img/sm_1_03_1024_910_tr.jpg" media="(max-width: 640px)">' +
                        '<img class="fancybox-image" src="../img/sm_1_03_1920_910_tr.jpg" alt=""></picture>',
                    opts: {
                        color: 'Цвет TU2101',
                        caption: 'Гостинная',
                        thumb: '../img/sm_1_03_1920_910_tr.jpg',
                    }
                },
                {
                    type: "html",
                    src: '<img class="fancybox-image"  src="../img/ar_1_05_1920_910_tr.jpg"/>',
                    opts: {
                        color: 'Цвет TU2101',
                        caption: 'Second caption Second caption',
                        thumb: '../img/ar_1_05_1920_910_tr.jpg'
                    }
                }
            ], {
            loop: false,
            buttons: ["close"],
            width: 1920,
            height: "",
            // fullScreen: { autoStart: true },
            margin: 0,
            padding: 0,
            arrows: false,
            infobar: false,
            baseClass: "fancybox-custom-layout",
            btnTpl: {
                smallBtn: '<button data-fancybox-close="" class="fancybox-button fancybox-button--close" title="Close"><span>✕</span></button>',
            },
            caption: function (instance) {
                return '<div class="fancybox-text"><p class="fancybox-color">' + this.opts.color + '</p><p class="fancybox-title">' + this.opts.caption + '</p></div>' + '</div><div class="fancybox-infobar"><span data-fancybox-index=""></span>&nbsp;/&nbsp;<span data-fancybox-count=""></span></div><div class="fancybox-navigation"><button data-fancybox-prev="" class="fancybox-button fancybox-button--arrow_left" title="Previous"></button><button data-fancybox-next="" class="fancybox-button fancybox-button--arrow_right" title="Next" disabled=""> </button></div>';
            },

        }
        );
    });
READ ALSO
Конфликт между аккордеоном и parallax js

Конфликт между аккордеоном и parallax js

Используется аккордеон написанный на jquery, под ним находится секция с параллакс эффектом, при нажатии на аккордеон, он наезжает на секцию...

82
Как сгруппировать одинаковые данные?

Как сгруппировать одинаковые данные?

Нужна помощь с группировкой данных

108
метод is not a function, когда массив объектов

метод is not a function, когда массив объектов

Метод "TestMethod" выдает ошибку при выводе, "ObjArrayCityMapTestMethod is not a function", такая проблема, только при массиве объектов, не могу понять почему

82
Получение данных из JSON в js

Получение данных из JSON в js

Задача таковаЕсть функция, которая читает JSON файл, и выдаёт/возвращает его содержимое

159