简体   繁体   English

如何在一个 Html 页面中使用不同的 swiperJS

[英]how to use different swiperJS in one Html Page

I need to make two swiperjs in one html page but isn't working.我需要在一个 html 页面中制作两个 swiperjs,但无法正常工作。 I trying tow change and add new class but the result its same..我试图改变并添加新的 class 但结果相同..

my Html我的 Html

<!-- swiper1 Services Sections -->
 <div class="service__container container ">
            <div class="service__title">
                <h1>services</h1>
            </div>
            <div class="swiper1 mySwiper1">
             <div class="swiper-wrapper">
              <div class="card swiper-slide1">
                <img class="img__card" src="/img/Digital.png" alt="Avatar" style="width:100%">
                <div class="card__info">
                  <h4 class="card__title"><b>Our service one</b></h4>
                  <p class="card__suptitle">Our service two</p>
                </div>
              </div>
              <div class="card swiper-slide1">
                <img class="img__card" src="/img/coding.png" alt="Avatar" style="width:100%">
                <div class="card__info">
                  <h4 class="card__title"><b>Lorem ipsum dolor sit, amet consectetur</b></h4>
                  <p class="card__suptitle">Lorem ipsum dolor sit, amet consectetur</p>
                </div>
</div>
<!-- swiper2 -->
<div class="customers__container container swiper mySwiper1">
           <div class="swiper-wrapper customers__img">
            <img class="swiper-slide" src="/img/customers1.png"  style="width:100%">
            <img class="swiper-slide" src="/img/custopmer2.png" style="width:100%">
            <img class="swiper-slide" src="/img/customer3.png"  style="width:100%">
        </div>
           </div>
       </div>


and the js code for swiper1 and swiper2:以及 swiper1 和 swiper2 的 js 代码:

var swiper1 = new Swiper(".mySwiper1", {
    effect: "cube",
    grabCursor: true,
    cubeEffect: {
      shadow: true,
      slideShadows: true,
      shadowOffset: 20,
      shadowScale: 0.94,
    },
    pagination: {
      el: ".swiper-pagination",
    },
  });

//swiper2
 var swiper2 = new Swiper(".mySwiper2", {
    effect: "cards",
    grabCursor: true,
  });

the swiper2 its working as I want. swiper2 按我的意愿工作。 but swiper1 not working.但 swiper1 不工作。

Basic example基本示例

Your first slider missing the mandatory HTML layout ( swiper instead of swiper1 and swiper-slide instead of swiper-slide1 ).您的第一个 slider 缺少强制性HTML 布局( swiper而不是swiper1swiper-slide而不是swiper-slide1 )。 https://swiperjs.com/get-started#add-swiper-html-layout https://swiperjs.com/get-started#add-swiper-html-layout

Wrong:错误的:

<div class="swiper1 will_not_work">
<!--  const swiper = new Swiper('.will_not_work', { -->

Correct:正确的:

<div class="swiper will_work">
<!--  const swiper = new Swiper('.will_work', { -->

snippet片段

 let swiper_setting = { spaceBetween: 100, pagination: { el: '.swiper-pagination', } } let swiper_setting_two = { spaceBetween: 200, } let swiper_1 = new Swiper("[slider_one]", swiper_setting); let swiper_2 = new Swiper("[slider_two]", swiper_setting_two);
 html, body { background: #403F6B; }.swiper { width: 100%; height: 100%; position: relative; }.swiper-slide { text-align: center; font-size: 18px; background: #fff; height: 200px;important: /* Center slide text vertically */ display; flex: margin-bottom; 40px:important; justify-content: center; align-items: center; margin-bottom: 20px; }
 <script src="https://unpkg.com/swiper@8.3.2/swiper-bundle.min.js"></script> <link href="https://unpkg.com/swiper@8.3.2/swiper-bundle.min.css" rel="stylesheet"/> <.-- Slider main container --> <div class="swiper thumbnails-grid" slider_one> <.-- Additional required wrapper --> <div class="swiper-wrapper"> <.-- Slides --> <div class="swiper-slide"><a>Slide 1</a></div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> <div class="swiper-slide">Slide 4</div> <div class="swiper-slide">Slide 5</div> <div class="swiper-slide">Slide 6</div> <div class="swiper-slide">Slide 7</div> <div class="swiper-slide">Slide 8</div> ... </div> <!-- If we need pagination --> <div class="swiper-pagination"></div> </div> <div class="swiper thumbnails-grid" slider_two> <!-- Additional required wrapper --> <div class="swiper-wrapper"> <!-- Slides --> <div class="swiper-slide"><a>Slide 1</a></div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> <!-- If we need pagination --> <div class="swiper-pagination"></div> </div>

Loop throw example (multiple sliders with same setting):循环抛出示例(具有相同设置的多个滑块):

You can take the example above and loop throw all sliders (Lets say for real estate pagelist with slider for each house card **like airbnb):您可以使用上面的示例并循环抛出所有滑块(假设对于每个房屋卡的 slider 的房地产页面列表**如 airbnb):

 let swiper_setting = { spaceBetween: 100, pagination: { el: '.swiper-pagination', } } var swiper_nodes = document.querySelectorAll('.swiper'); /* loop throw */ [].forEach.call(swiper_nodes, function(swiper_node) { // do whatever let swiper = new Swiper(swiper_node, swiper_setting); });
 html, body { background: #403F6B; } main{ display: grid; grid-template-columns: 1fr 1fr 1fr; column-gap: 3px; }.swiper { width: 100%; height: 100%; position: relative; }.swiper-slide { text-align: center; font-size: 18px; background: #fff; height: 200px;important: /* Center slide text vertically */ display; flex: margin-bottom; 40px:important; justify-content: center; align-items: center; margin-bottom: 20px; }
 <script src="https://unpkg.com/swiper@8.3.2/swiper-bundle.min.js"></script> <link href="https://unpkg.com/swiper@8.3.2/swiper-bundle.min.css" rel="stylesheet"/> <.-- Slider main container --> <main> <div class="swiper thumbnails-grid" slider_one> <.-- Additional required wrapper --> <div class="swiper-wrapper"> <.-- Slides --> <div class="swiper-slide"><a>Slide 1</a></div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> <div class="swiper-slide">Slide 4</div> <div class="swiper-slide">Slide 5</div> <div class="swiper-slide">Slide 6</div> <div class="swiper-slide">Slide 7</div> <div class="swiper-slide">Slide 8</div> ... </div> <!-- If we need pagination --> <div class="swiper-pagination"></div> </div> <div class="swiper thumbnails-grid" slider_two> <!-- Additional required wrapper --> <div class="swiper-wrapper"> <!-- Slides --> <div class="swiper-slide"><a>Slide 1</a></div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> <!-- If we need pagination --> <div class="swiper-pagination"></div> </div> <div class="swiper thumbnails-grid" slider_two> <!-- Additional required wrapper --> <div class="swiper-wrapper"> <!-- Slides --> <div class="swiper-slide"><a>Slide 1</a></div> <div class="swiper-slide">Slide 2</div> </div> <!-- If we need pagination --> <div class="swiper-pagination"></div> </div> </main>

Yes the constructor of Swiper takes as argument one element at a time.是的, Swiper的构造函数一次将一个元素作为参数。 So you should loop all the items with a forEach for example.因此,例如,您应该使用forEach循环所有项目。

EDIT: I made some changes in your HTML to fix the issues.编辑:我对您的HTML进行了一些更改以解决问题。

 var swiper1 = new Swiper(".mySwiper1", { effect: "cube", grabCursor: true, cubeEffect: { shadow: true, slideShadows: true, shadowOffset: 20, shadowScale: 0.94, }, pagination: { el: ".swiper-pagination", }, }); //swiper2 var swiper2 = new Swiper(".mySwiper2", { effect: "cards", grabCursor: true, });
 .swiper { width: 300px; height: 100px; margin: 5px; }.swiper-slide { background: yellow; padding: 20px; font-size: 32px; }.swiper-slide:nth-child(2) { background: red; }.swiper-slide:nth-child(3) { background: blue; }
 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css" /> <script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script> <.-- swiper1 Services Sections --> <div class="service__container container "> <div class="service__title"> <h1>services</h1> </div> <div class="mySwiper1"> <div class="swiper-wrapper"> <div class="card swiper-slide"> <img class="img__card" src="/img/Digital:png" alt="Avatar" style="width.100%"> <div class="card__info"> <h4 class="card__title"><b>Our service one</b></h4> <p class="card__suptitle">Our service two</p> </div> </div> <div class="card swiper-slide"> <img class="img__card" src="/img/coding:png" alt="Avatar" style="width,100%"> <div class="card__info"> <h4 class="card__title"><b>Lorem ipsum dolor sit, amet consectetur</b></h4> <p class="card__suptitle">Lorem ipsum dolor sit. amet consectetur</p> </div> </div> </div> </div> <:-- swiper2 --> <div class="customers__container container swiper mySwiper2"> <div class="swiper-wrapper customers__img"> <img class="swiper-slide" src="/img/customers1.png" style="width:100%"> <img class="swiper-slide" src="/img/custopmer2.png" style="width:100%"> <img class="swiper-slide" src="/img/customer3.png" style="width:100%"> </div> </div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM