PageSourceSearch

https://kare.co.jp/js/tygh/previewers/swiper.previewer.js?ver=1791043208

js kare.co.jp collected 2026-10-03 21:20:33 UTC 3,716 bytes, 93 lines download raw bytes

1/* previewer-description:carousel_swiper */
2(function(_, $) {
3    $.loadCss(['js/lib/swiper/swiper.min.css']);
4
5    function fn_display (elm) {
6        var imageId = elm.data('caImageId');
7        var elms = $('a[data-ca-image-id="' + imageId + '"] img');
8
9        var previewer = $('<div class="ty-swiper-previewer"></div>');
10        var previewerContainer = $('<div class="ty-swiper-previewer__container swiper-container"></div>');
11        var previewerWrapper = $('<div class="ty-swiper-previewer__wrapper swiper-wrapper"></div>');
12
13        previewerContainer.attr('dir', _.language_direction);
14
15        elms.each(function (index, elm) {
16            var _clonedNode = $(elm).clone(),
17                _imageContainer = $('<div class="ty-swiper-previewer__slide swiper-slide">&nbsp;</div>');
18
19            _clonedNode.attr('srcset', '');
20            _clonedNode.attr('src', $(elm).parent('a').attr('href') || _clonedNode.attr('src'));
21            _clonedNode.addClass('ty-swiper-previewer__img');
22
23            _clonedNode.appendTo(_imageContainer);
24            _imageContainer.appendTo(previewerWrapper);
25        });
26        previewerContainer.append(previewerWrapper);   
27        if(elms.length > 1) {
28            previewerContainer.append('<div class="ty-swiper-previewer__button-prev swiper-button-prev" data-button="prev"></div>');
29            previewerContainer.append('<div class="ty-swiper-previewer__button-next swiper-button-next" data-button="next"></div>');    
30        }
31        previewerContainer.appendTo(previewer);
32        previewer.appendTo(_.body);
33
34        // taku コアを修正 
35        // 元の記述 var activeIndexImg = $(elm).closest(".cm-image-previewer.slick-active").index();
36        var $target = $(elm).closest(".ty-image-zoom__wrapper.slick-active");
37
38        if ($target.length === 0) {
39            $target = $(elm).closest(".cm-image-previewer.slick-active");
40        }
41        var activeIndexImg = $target.index();
42        var swiper = new Swiper (previewerContainer, {
43            initialSlide: activeIndexImg ? activeIndexImg : 0,
44            navigation: {
45                nextEl: elms.length > 1 ? '[data-button="next"]' : '',
46                prevEl: elms.length > 1 ? '[data-button="prev"]' : '',
47            },
48            spaceBetween: 50,
49        });
50
51        //for the correct operation of the swipe animation in Firefox
52        var isFirefox = typeof InstallTrigger !== 'undefined';
53        if (isFirefox) {
54            swiper.update();
55        }
56
57        var _scrollPosition = $(document).scrollTop();
58        previewer.ceDialog('open', {
59            dialogClass: 'ty-swiper-previewer__dialog',
60            containerClass: 'ty-swiper-previewer__object-container',
61            onClose: function() {
62                setTimeout(function() {
63                    $('html, body').animate({
64                        scrollTop: _scrollPosition
65                    }, 0);
66                    $.ceDialog('get_last').ceDialog('reload');
67                }, 0);
68                previewer.remove();
69
70                // unset scroll-prevent styles
71                $(_.body).css({
72                    overflow: '',
73                    maxHeight: ''
74                });
75            }
76        });
77
78        // set scroll-prevent styles (no Y-scroll when images slides)
79        $(_.body).css({ overflow: 'hidden', maxHeight: '100vh' });
80    }
81
82    $.cePreviewer('handlers', {
83        display: function(elm) {
84            if (typeof Swiper === "undefined") {
85                $.getScript('js/lib/swiper/swiper.min.js', function () {
86                    fn_display(elm);
87                });
88            } else {
89                fn_display(elm);
90            }
91        }
92    });
93}(Tygh, Tygh.$));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.