Fancybox Gallery:多个画廊的轮播视图错误

发布于 2025-01-20 02:06:15 字数 13635 浏览 4 评论 0原文

在此处输入代码# Fancybox Gallery 出现问题# 轮播视图中存在多个画廊的问题

我的问题是!
Category1 显示轮播中的所有图像,而不是仅显示 Category1。
对于类别 2 到类别 5,所有内容都显示正确。
有了 All,一切都按其应有的样子呈现。
正如已经提到的,问题仅在类别 1 中。

上尝试了很多东西

我希望你能帮助我

@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700&display=swap");

 /*===== VARIABLES CSS =====*/
 :root {
    --header-height: 3rem;
    --font-medium: 500;
}
/*===== Colores =====*/
:root {
    --first-color: #49A687;
    --complementary-color: #F99D6E;
    --white-color: #FAFAFF;
    --dark-color: #2A3B47;
    --text-color: #697477;
    --white-color-glass: rgba(250, 250, 255, 0.4);
}
/*===== Fuente y tipografia =====*/
:root {
    --body-font: 'Montserrat', sans-serif;
    --big-font-size: 6.25rem;
    --h2-font-size: 1.25rem;
    --normal-font-size: .938rem;
    --small-font-size: .813rem;
}

*
{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family:  'Montserrat', sans-serif;
}
section.res__gallery
{
    padding: 20px;
    width: 100%;
    display: flex;
    justify-self: center;
    align-items: center;
    flex-direction: column;
    margin: 40px auto;
}
section.res__gallery ul
{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
section.res__gallery ul li
{
    list-style: none;
    background: var(--first-color);
    color: var(--white-color);
    font-size: var(--h2-font-size);
    padding: 12px 20px;
    margin: 5px;
    letter-spacing: 1px;
    cursor: pointer;
    -ms-user-select: None;
    -moz-user-select: None;
    -webkit-user-select: None;
    user-select: None;
}
section.res__gallery ul li.active
{
    background: var(--complementary-color);
    color: var(--white-color);
}
.product
{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    -ms-user-select: None;
    -moz-user-select: None;
    -webkit-user-select: None;
    user-select: None;
}
.product .itembox
{
    position: relative;
    width: 200px;
    height: 200px;
    margin: 5px;
    display: block;
}
.product .itembox.hide
{
    display: none;
}
.product .itembox img
{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

a[data-fancybox] img {
    cursor: zoom-in;
  }

 
<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Responsive Gallery</title>

        <link rel="stylesheet" href="gallery-style.css">
        <link rel="stylesheet" href="tailwind.min.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/[email protected]/dist/fancybox.css">
    </head>

    <body>
        <section class="res__gallery">
            <ul>
                <li class="list active" data-filter="all">Alles</li>
                <li class="list" data-filter="category1">category1</li>
                <li class="list" data-filter="category2">category2</li>
                <li class="list" data-filter="category3">category3</li>
                <li class="list" data-filter="category4">category4</li>
                <li class="list" data-filter="category5">category5</li>
            </ul>
            <div class="product">
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile1.jpg">
                        <img src="https://mectag-design.com/assets/images//mobile1.jpg" alt="mobile1" title="Mobile1">
                    </a>
                </div>
                <div class="itembox" data-item="category2">
                    <a data-fancybox="category2" data-caption="Short caption" href="https://mectag-design.com/assets/images/camera1.jpg">
                        <img src="https://mectag-design.com/assets/images/camera1.jpg" alt="camera1">
                    </a>
                </div>
                <div class="itembox" data-item="category3">
                    <a data-fancybox="category3" data-caption="Short caption" href="https://mectag-design.com/assets/images/watch1.jpg">
                        <img src="https://mectag-design.com/assets/images/watch1.jpg" alt="watch1">
                    </a>
                </div>
                <div class="itembox" data-item="category4">
                    <a data-fancybox="category4" data-caption="Short caption" href="https://mectag-design.com/assets/images/shoe1.jpg">
                        <img src="https://mectag-design.com/assets/images/shoe1.jpg" alt="shoe1">
                    </a>
                </div>
                <div class="itembox" data-item="category5">
                    <a data-fancybox="category5" data-caption="Short caption" href="https://mectag-design.com/assets/images/headphone1.jpg">
                        <img src="https://mectag-design.com/assets/images/headphone1.jpg" alt="headphone1">
                    </a>
                </div>
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile2.jpg">
                        <img src="https://mectag-design.com/assets/images/mobile2.jpg" alt="mobile2">
                    </a>
                </div>
                <div class="itembox" data-item="category2">
                    <a data-fancybox="category2" data-caption="Short caption" href="https://mectag-design.com/assets/images/camera2.jpg">
                        <img src="https://mectag-design.com/assets/images/camera2.jpg" alt="camera2">
                    </a>
                </div>
                <div class="itembox" data-item="category3">
                    <a data-fancybox="category3" data-caption="Short caption" href="https://mectag-design.com/assets/images/watch2.jpg">
                        <img src="https://mectag-design.com/assets/images/watch2.jpg" alt="watch2">
                    </a>
                </div>
                <div class="itembox" data-item="category4">
                    <a data-fancybox="category4" data-caption="Short caption" href="https://mectag-design.com/assets/images/shoe2.jpg">
                        <img src="https://mectag-design.com/assets/images/shoe2.jpg" alt="shoe2">
                    </a>
                </div>
                <div class="itembox" data-item="category5">
                    <a data-fancybox="category5" data-caption="Short caption" href="https://mectag-design.com/assets/images/headphone2.jpg">
                        <img src="https://mectag-design.com/assets/images/headphone2.jpg" alt="headphone2">
                    </a>
                </div>
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile3.jpg">
                        <img src="https://mectag-design.com/assets/images/mobile3.jpg" alt="mobile3">
                    </a>
                </div>
                <div class="itembox" data-item="category2">
                    <a data-fancybox="category2" data-caption="Short caption" href="https://mectag-design.com/assets/images/camera3.jpg">
                        <img src="https://mectag-design.com/assets/images/camera3.jpg" alt="camera3">
                    </a>
                </div>
                <div class="itembox" data-item="category3">
                    <a data-fancybox="category3" data-caption="Short caption" href="https://mectag-design.com/assets/images/watch3.jpg">
                        <img src="https://mectag-design.com/assets/images/watch3.jpg" alt="watch3">
                    </a>
                </div>
                <div class="itembox" data-item="category4">
                    <a data-fancybox="category4" data-caption="Short caption" href="https://mectag-design.com/assets/images/shoe3.jpg">
                        <img src="https://mectag-design.com/assets/images/shoe3.jpg" alt="shoe3">
                    </a>
                </div>
                <div class="itembox" data-item="category5">
                    <a data-fancybox="category5" data-caption="Short caption" href="https://mectag-design.com/assets/images/headphone3.jpg">
                        <img src="https://mectag-design.com/assets/images/headphone3.jpg" alt="headphone3">
                    </a>
                </div>
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile4.jpg">
                        <img src="https://mectag-design.com/assets/images/mobile4.jpg" alt="mobile4">
                    </a>
                </div>
                <div class="itembox" data-item="category3">
                    <a data-fancybox="category3" data-caption="Short caption" href="https://mectag-design.com/assets/images/watch4.jpg">
                        <img src="https://mectag-design.com/assets/images/watch4.jpg" alt="watch4">
                    </a>
                </div>
                <div class="itembox" data-item="category4">
                    <a data-fancybox="category4" data-caption="Short caption" href="https://mectag-design.com/assets/images/shoe4.jpg">
                        <img src="https://mectag-design.com/assets/images/shoe4.jpg" alt="shoe4">
                    </a>
                </div>
                <div class="itembox" data-item="category5">
                    <a data-fancybox="category5" data-caption="Short caption" href="https://mectag-design.com/assets/images/headphone4.jpg">
                        <img src="https://mectag-design.com/assets/images/headphone4.jpg" alt="headphone4">
                    </a>
                </div>
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile5.jpg">
                        <img src="https://mectag-design.com/assets/images/mobile5.jpg" alt="mobile5">
                    </a>
                </div>
            </div>
        </section>


        <script>
            let list = document.querySelectorAll('.list');
            let itemBox = document.querySelectorAll('.itembox');

            for (let i = 0; i < list.length; i++) {
                list[i].addEventListener('click', function () {
                    for (let j = 0; j < list.length; j++) {
                        list[j].classList.remove('active');
                    }
                    this.classList.add('active');

                    let dataFilter = this.getAttribute('data-filter');

                    for (let k = 0; k < itemBox.length; k++) {
                        itemBox[k].classList.remove('active');
                        itemBox[k].classList.add('hide');
                        Fancybox.bind(
                            '[data-mobile="category0"],[data-mobile="category1"],[data-fancybox="category2"],[data-fancybox="category3"],[data-fancybox="category4"],[data-fancybox="category5"]',
                            {
                                groupAll: false,
                            }
                        );


                        if (itemBox[k].getAttribute('data-item') == dataFilter ||
                            dataFilter == "all") {
                            itemBox[k].classList.remove('hide');
                            itemBox[k].classList.add('active');
                            Fancybox.bind(
                                '[data-mobile="category0"],[data-mobile="category1"],[data-fancybox="category2"],[data-fancybox="category3"],[data-fancybox="category4"],[data-fancybox="category5"]',
                                {
                                    groupAll: true,
                                }
                            );
                        }

                    }
                })
            }


        </script>
        <script src="https://cdn.jsdelivr.net/npm/@fancyapps/[email protected]/dist/fancybox.umd.js"></script>

    </body>

</html>

enter code here# Problem with Fancybox Gallery #
Problem with Multiple galleries in the Carousel view

My problem is!
Category1 shows all images in the carousel instead of only Category1.
For Category2 to Category5, everything display correctly.
With All, everything show as it should.
Issue, as already mentioned, only in Category1.
Have tryed many things on the

I hope you can help me here

@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700&display=swap");

 /*===== VARIABLES CSS =====*/
 :root {
    --header-height: 3rem;
    --font-medium: 500;
}
/*===== Colores =====*/
:root {
    --first-color: #49A687;
    --complementary-color: #F99D6E;
    --white-color: #FAFAFF;
    --dark-color: #2A3B47;
    --text-color: #697477;
    --white-color-glass: rgba(250, 250, 255, 0.4);
}
/*===== Fuente y tipografia =====*/
:root {
    --body-font: 'Montserrat', sans-serif;
    --big-font-size: 6.25rem;
    --h2-font-size: 1.25rem;
    --normal-font-size: .938rem;
    --small-font-size: .813rem;
}

*
{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family:  'Montserrat', sans-serif;
}
section.res__gallery
{
    padding: 20px;
    width: 100%;
    display: flex;
    justify-self: center;
    align-items: center;
    flex-direction: column;
    margin: 40px auto;
}
section.res__gallery ul
{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
section.res__gallery ul li
{
    list-style: none;
    background: var(--first-color);
    color: var(--white-color);
    font-size: var(--h2-font-size);
    padding: 12px 20px;
    margin: 5px;
    letter-spacing: 1px;
    cursor: pointer;
    -ms-user-select: None;
    -moz-user-select: None;
    -webkit-user-select: None;
    user-select: None;
}
section.res__gallery ul li.active
{
    background: var(--complementary-color);
    color: var(--white-color);
}
.product
{
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    -ms-user-select: None;
    -moz-user-select: None;
    -webkit-user-select: None;
    user-select: None;
}
.product .itembox
{
    position: relative;
    width: 200px;
    height: 200px;
    margin: 5px;
    display: block;
}
.product .itembox.hide
{
    display: none;
}
.product .itembox img
{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

a[data-fancybox] img {
    cursor: zoom-in;
  }

 
<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Responsive Gallery</title>

        <link rel="stylesheet" href="gallery-style.css">
        <link rel="stylesheet" href="tailwind.min.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/[email protected]/dist/fancybox.css">
    </head>

    <body>
        <section class="res__gallery">
            <ul>
                <li class="list active" data-filter="all">Alles</li>
                <li class="list" data-filter="category1">category1</li>
                <li class="list" data-filter="category2">category2</li>
                <li class="list" data-filter="category3">category3</li>
                <li class="list" data-filter="category4">category4</li>
                <li class="list" data-filter="category5">category5</li>
            </ul>
            <div class="product">
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile1.jpg">
                        <img src="https://mectag-design.com/assets/images//mobile1.jpg" alt="mobile1" title="Mobile1">
                    </a>
                </div>
                <div class="itembox" data-item="category2">
                    <a data-fancybox="category2" data-caption="Short caption" href="https://mectag-design.com/assets/images/camera1.jpg">
                        <img src="https://mectag-design.com/assets/images/camera1.jpg" alt="camera1">
                    </a>
                </div>
                <div class="itembox" data-item="category3">
                    <a data-fancybox="category3" data-caption="Short caption" href="https://mectag-design.com/assets/images/watch1.jpg">
                        <img src="https://mectag-design.com/assets/images/watch1.jpg" alt="watch1">
                    </a>
                </div>
                <div class="itembox" data-item="category4">
                    <a data-fancybox="category4" data-caption="Short caption" href="https://mectag-design.com/assets/images/shoe1.jpg">
                        <img src="https://mectag-design.com/assets/images/shoe1.jpg" alt="shoe1">
                    </a>
                </div>
                <div class="itembox" data-item="category5">
                    <a data-fancybox="category5" data-caption="Short caption" href="https://mectag-design.com/assets/images/headphone1.jpg">
                        <img src="https://mectag-design.com/assets/images/headphone1.jpg" alt="headphone1">
                    </a>
                </div>
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile2.jpg">
                        <img src="https://mectag-design.com/assets/images/mobile2.jpg" alt="mobile2">
                    </a>
                </div>
                <div class="itembox" data-item="category2">
                    <a data-fancybox="category2" data-caption="Short caption" href="https://mectag-design.com/assets/images/camera2.jpg">
                        <img src="https://mectag-design.com/assets/images/camera2.jpg" alt="camera2">
                    </a>
                </div>
                <div class="itembox" data-item="category3">
                    <a data-fancybox="category3" data-caption="Short caption" href="https://mectag-design.com/assets/images/watch2.jpg">
                        <img src="https://mectag-design.com/assets/images/watch2.jpg" alt="watch2">
                    </a>
                </div>
                <div class="itembox" data-item="category4">
                    <a data-fancybox="category4" data-caption="Short caption" href="https://mectag-design.com/assets/images/shoe2.jpg">
                        <img src="https://mectag-design.com/assets/images/shoe2.jpg" alt="shoe2">
                    </a>
                </div>
                <div class="itembox" data-item="category5">
                    <a data-fancybox="category5" data-caption="Short caption" href="https://mectag-design.com/assets/images/headphone2.jpg">
                        <img src="https://mectag-design.com/assets/images/headphone2.jpg" alt="headphone2">
                    </a>
                </div>
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile3.jpg">
                        <img src="https://mectag-design.com/assets/images/mobile3.jpg" alt="mobile3">
                    </a>
                </div>
                <div class="itembox" data-item="category2">
                    <a data-fancybox="category2" data-caption="Short caption" href="https://mectag-design.com/assets/images/camera3.jpg">
                        <img src="https://mectag-design.com/assets/images/camera3.jpg" alt="camera3">
                    </a>
                </div>
                <div class="itembox" data-item="category3">
                    <a data-fancybox="category3" data-caption="Short caption" href="https://mectag-design.com/assets/images/watch3.jpg">
                        <img src="https://mectag-design.com/assets/images/watch3.jpg" alt="watch3">
                    </a>
                </div>
                <div class="itembox" data-item="category4">
                    <a data-fancybox="category4" data-caption="Short caption" href="https://mectag-design.com/assets/images/shoe3.jpg">
                        <img src="https://mectag-design.com/assets/images/shoe3.jpg" alt="shoe3">
                    </a>
                </div>
                <div class="itembox" data-item="category5">
                    <a data-fancybox="category5" data-caption="Short caption" href="https://mectag-design.com/assets/images/headphone3.jpg">
                        <img src="https://mectag-design.com/assets/images/headphone3.jpg" alt="headphone3">
                    </a>
                </div>
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile4.jpg">
                        <img src="https://mectag-design.com/assets/images/mobile4.jpg" alt="mobile4">
                    </a>
                </div>
                <div class="itembox" data-item="category3">
                    <a data-fancybox="category3" data-caption="Short caption" href="https://mectag-design.com/assets/images/watch4.jpg">
                        <img src="https://mectag-design.com/assets/images/watch4.jpg" alt="watch4">
                    </a>
                </div>
                <div class="itembox" data-item="category4">
                    <a data-fancybox="category4" data-caption="Short caption" href="https://mectag-design.com/assets/images/shoe4.jpg">
                        <img src="https://mectag-design.com/assets/images/shoe4.jpg" alt="shoe4">
                    </a>
                </div>
                <div class="itembox" data-item="category5">
                    <a data-fancybox="category5" data-caption="Short caption" href="https://mectag-design.com/assets/images/headphone4.jpg">
                        <img src="https://mectag-design.com/assets/images/headphone4.jpg" alt="headphone4">
                    </a>
                </div>
                <div class="itembox" data-item="category1">
                    <a data-mobile="category1" data-caption="Short caption" href="https://mectag-design.com/assets/images/mobile5.jpg">
                        <img src="https://mectag-design.com/assets/images/mobile5.jpg" alt="mobile5">
                    </a>
                </div>
            </div>
        </section>


        <script>
            let list = document.querySelectorAll('.list');
            let itemBox = document.querySelectorAll('.itembox');

            for (let i = 0; i < list.length; i++) {
                list[i].addEventListener('click', function () {
                    for (let j = 0; j < list.length; j++) {
                        list[j].classList.remove('active');
                    }
                    this.classList.add('active');

                    let dataFilter = this.getAttribute('data-filter');

                    for (let k = 0; k < itemBox.length; k++) {
                        itemBox[k].classList.remove('active');
                        itemBox[k].classList.add('hide');
                        Fancybox.bind(
                            '[data-mobile="category0"],[data-mobile="category1"],[data-fancybox="category2"],[data-fancybox="category3"],[data-fancybox="category4"],[data-fancybox="category5"]',
                            {
                                groupAll: false,
                            }
                        );


                        if (itemBox[k].getAttribute('data-item') == dataFilter ||
                            dataFilter == "all") {
                            itemBox[k].classList.remove('hide');
                            itemBox[k].classList.add('active');
                            Fancybox.bind(
                                '[data-mobile="category0"],[data-mobile="category1"],[data-fancybox="category2"],[data-fancybox="category3"],[data-fancybox="category4"],[data-fancybox="category5"]',
                                {
                                    groupAll: true,
                                }
                            );
                        }

                    }
                })
            }


        </script>
        <script src="https://cdn.jsdelivr.net/npm/@fancyapps/[email protected]/dist/fancybox.umd.js"></script>

    </body>

</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

戏蝶舞 2025-01-27 02:06:15

我建议将选择器更新为 Fancybox.bind('[data-mobile="category0"].active', {}); 因为 Fancybox 会显示与您的选择器匹配的每个项目,例如,它内部使用类似于 document.querySelectorAll(YOUR_SELECTOR) 的内容

I would suggest to update selector to something like Fancybox.bind('[data-mobile="category0"].active', {}); because Fancybox displays every item that matches your selector, e.g., it internally uses something similar to document.querySelectorAll(YOUR_SELECTOR)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文