Javascript 我怎么能有多个“多个”;Swiper";单页幻灯片

Javascript 我怎么能有多个“多个”;Swiper";单页幻灯片,javascript,jquery,slideshow,swiper,Javascript,Jquery,Slideshow,Swiper,我正在使用。我正在使用。这是我用的 添加第二个“Swiper”时,分页无法正常工作 我尝试给第二个“swiper”容器提供不同的类,但没有成功 我怎么能在同一页上有两个呢 谢谢。您走的路是对的-您需要向第二个swiper添加一个不同的类,但是您也需要在dist/js/swiper.min.js中添加对新类的引用,否则它将只针对使用原始类的元素。这应该是一个复制相关部分并用新ID重复它们的例子(与我对wow.js所做的相同)。他们的支持向我发送了这个消息。它起作用了 您不需要对JS文件执行任何操作

我正在使用。我正在使用。这是我用的

添加第二个“Swiper”时,分页无法正常工作

我尝试给第二个“swiper”容器提供不同的类,但没有成功

我怎么能在同一页上有两个呢


谢谢。

您走的路是对的-您需要向第二个swiper添加一个不同的类,但是您也需要在
dist/js/swiper.min.js
中添加对新类的引用,否则它将只针对使用原始类的元素。这应该是一个复制相关部分并用新ID重复它们的例子(与我对wow.js所做的相同)。

他们的支持向我发送了这个消息。它起作用了

您不需要对JS文件执行任何操作。 您只需在分页中添加一个额外的类,在幻灯片中也添加一个额外的类,并在其他方面区分其余的类(请参见下面的代码)。有了它,你可以在同一页上有你想要的任意多个幻灯片

<div class="swiper-container swiper1">
        <div class="swiper-wrapper">
            <div class="swiper-slide">Slide 1</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 class="swiper-slide">Slide 9</div>
            <div class="swiper-slide">Slide 10</div>
        </div>
        <!-- Add Pagination -->
        <div class="swiper-pagination swiper-pagination1"></div>
    </div>

    <!-- Swiper -->
    <div class="swiper-container swiper2">
        <div class="swiper-wrapper">
            <div class="swiper-slide">Slide 1</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 class="swiper-slide">Slide 9</div>
            <div class="swiper-slide">Slide 10</div>
        </div>
        <!-- Add Pagination -->
        <div class="swiper-pagination swiper-pagination2"></div>

 <!-- Swiper JS -->
    <script src="../dist/js/swiper.min.js"></script>

<!-- Initialize Swiper -->
<script>
var swiper1 = new Swiper('.swiper1', {
    pagination: '.swiper-pagination1',
    paginationClickable: true,
});
var swiper2 = new Swiper('.swiper2', {
    pagination: '.swiper-pagination2',
    paginationClickable: true,
});
<script>

幻灯片1
幻灯片2
幻灯片3
幻灯片4
幻灯片5
幻灯片6
幻灯片7
幻灯片8
幻灯片9
幻灯片10
幻灯片1
幻灯片2
幻灯片3
幻灯片4
幻灯片5
幻灯片6
幻灯片7
幻灯片8
幻灯片9
幻灯片10
var swiper1=新的Swiper('.swiper1'{
分页:'.swiper-pagination1',
paginationClickable:true,
});
var swiper2=新的Swiper('.swiper2'{
分页:'.swiper-pagination2',
paginationClickable:true,
});

我当前的Swiper版本是3.4.2。当我点击next prev按钮时,页面上的所有滑块都会移动

对于设置不同的下一个上一个按钮,我执行了以下操作:

<div class="swiper-pager">
  <div class="swiper-button-next></div>
  <div class="swiper-button-prev></div>
</div>

=>


@大卫·马丁斯
非常感谢,但在当前版本4.5.0中,您需要修改一些js代码:

<script type="text/javascript">
// Init Swiper
var swiper1 = new Swiper('.swiper1', {
  pagination: {
    el: '.swiper-pagination1',
    clickable: true,
  },
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
  // Enable debugger
  debugger: true,
});
var swiper2 = new Swiper('.swiper2', {
  autoHeight: true,
  pagination:  {
    el: '.swiper-pagination2',
    clickable: true,
  },
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
  // Enable debugger
  debugger: true,
});

//初始化开关
var swiper1=新的Swiper('.swiper1'{
分页:{
el:“.swiper-pagination1”,
可点击:正确,
},
导航:{
nextEl:“.swiper按钮下一步”,
prevEl:“.swiper按钮prev”,
},
//启用调试器
调试器:对,
});
var swiper2=新的Swiper('.swiper2'{
自动高度:正确,
分页:{
el:“.swiper-pagination2”,
可点击:正确,
},
导航:{
nextEl:“.swiper按钮下一步”,
prevEl:“.swiper按钮prev”,
},
//启用调试器
调试器:对,
});


无论如何,非常感谢你的帮助

如果有人路过这里,寻找解决多个刷卡器之间与上一个和下一个按钮冲突的方法,这就是为我解决问题的方法(Nuxt.js/SSR project):

1) 将id属性添加到按钮的div:

2) 在swiper options对象中,参考新ID,而不是
swiper button prev
swiper button next
类:

开关选项:{
方向:'水平',
幻灯片视图:4,
间隔:6,
导航:{
nextEl:“#点击下一个relacionados”,
prevEl:“#按钮prev relacionados”
},

在我的例子中,问题是在使用Framework7 Core根据数据值更新幻灯片结果时使用多个自动初始化实例

该用例缺少的部分是为swiper容器分配一个
id
,例如:

<div class="swiper-container swiper-init" id="swiper-instance-{{
userId}}">

这个小小的魔法会让所有的东西都重新工作,否则它会尝试重新使用Swiper实例,并对该实例属于哪一个实例感到非常困惑。Vladimir再次想到了一切:)

(代码笔中的示例:)

我们需要在HTML上添加额外的类,并更改CSS和JS上的类,以使多个swiper幻灯片在一个页面中工作

第1步: 让我们首先看一下swiper幻灯片的HTML文件

<!— HTML of swiper-1 -->

   <div class="swiper-container">
    <div class="swiper-wrapper">
      <div class="swiper-slide" style="background-image:url(https://source.unsplash.com/800x600/?car)"></div>
      <div class="swiper-slide" style="background-image:url(https://source.unsplash.com/800x600/?tree)"></div>
      <div class="swiper-slide" style="background-image:url(https://source.unsplash.com/800x600/?tiger)"></div>
      <div class="swiper-slide" style="background-image:url(https://source.unsplash.com/800x600/?water)"></div>
      <div class="swiper-slide" style="background-image:url(https://source.unsplash.com/800x600/?dog)"></div>
    </div>

    <!-- Swiper - Add Pagination -->
    <div class="swiper-pagination"></div>
  </div>

<!—HTML of swiper-2 -->

<div class="swiper-container ">
   <div class="parallax-bg" style="background-image:url(https://source.unsplash.com/800x600/?space)" data-swiper-parallax="-23%"></div>
  <div class="swiper-wrapper">
    <div class="swiper-slide">
      <div class="title" data-swiper-parallax="-300">Slide 1</div>
      <div class="subtitle" data-swiper-parallax="-200">Subtitle</div>
      <div class="text" data-swiper-parallax="-100">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dictum mattis velit, sit amet faucibus
          felis iaculis nec. Nulla laoreet justo vitae porttitor porttitor. Suspendisse in sem justo. </p>
      </div>
    </div>
    <div class="swiper-slide">
      <div class="title" data-swiper-parallax="-300" data-swiper-parallax-opacity="0">Slide 2</div>
      <div class="subtitle" data-swiper-parallax="-200">Subtitle</div>
      <div class="text" data-swiper-parallax="-100">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dictum mattis velit, sit amet faucibus
          felis iaculis nec. Nulla laoreet justo vitae porttitor porttitor. Suspendisse in sem justo. </p>
      </div>
    </div>
    <div class="swiper-slide">
      <div class="title" data-swiper-parallax="-300">Slide 3</div>
      <div class="subtitle" data-swiper-parallax="-200">Subtitle</div>
      <div class="text" data-swiper-parallax="-100">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dictum mattis velit, sit amet faucibus
          felis iaculis nec. Nulla laoreet justo vitae porttitor porttitor. Suspendisse in sem justo. Integer laoreet
         </p>
      </div>
    </div>
  </div>
  <!-- Add Pagination -->
  <div class="swiper-pagination swiper-pagination-white"></div>
  <!-- Add Navigation -->
  <div class="swiper-button-prev swiper-button-white"></div>
  <div class="swiper-button-next swiper-button-white"></div>
</div>
我们可以看到,, .swiper container.swiper slide是常见的类别

步骤-3: 现在,让我们确定在两个swiper幻灯片的JS文件中常见的类

/* CSS of swiper-1 */

   
    .swiper-container {
      width: 100%;
      padding-top: 50px;
      padding-bottom: 50px;
    }

    .swiper-slide {
      background-position: center;
      background-size: cover;
      width: 300px;
      height: 300px;

    }

/* CSS of swiper-2 */

.swiper-container {
    position: relative;
    height: 100%;
    background: #eee;
    font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
    font-size: 14px;
    color: #000;
    margin: 0;
    padding: 0;
  
width: 100%;
  height: 100%;
  background: #000;
}

.swiper-slide {
  font-size: 18px;
  color: white;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 40px 60px;
}

.parallax-bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 130%;
  height: 100%;
  -webkit-background-size: cover;
  background-size: cover;
  background-position: center;

}

.swiper-slide .title {
  font-size: 41px;
  font-weight: 300;
}

.swiper-slide .subtitle {
  font-size: 21px;
}

.swiper-slide .text {
  font-size: 14px;
  max-width: 400px;
  line-height: 1.3;

}
// JS File of Swiper-1

var swiper = new Swiper('.swiper-container ', {
    effect: 'coverflow',
    grabCursor: true,
    centeredSlides: true,
    slidesPerView: 'auto',
    coverflowEffect: {
      rotate: 50,
      stretch: 0,
      depth: 100,
      modifier: 1,
      slideShadows: true,
    },
    pagination: {
      el: '.swiper-pagination',
    },
  });

// JS file of swiper-2

var swiper = new Swiper('.swiper-container', {
    speed: 600,
    parallax: true,
    pagination: {
      el: '.swiper-pagination',
      clickable: true,
    },
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
  });
我们可以看到,, .swiper container.swiper分页是常见的类

第四步: 现在,让我们在HTML文件的公共类(.swiper container.swiper slide.swiper pagination)上添加额外的类

<!— HTML of swiper-1 -->

  <div class="swiper-container swiper-container1">
    <div class="swiper-wrapper">
      <div class="swiper-slide swiper-slide1" style="background-image:url(https://source.unsplash.com/800x600/?car)"></div>
      <div class="swiper-slide swiper-slide1" style="background-image:url(https://source.unsplash.com/800x600/?tree)"></div>
      <div class="swiper-slide swiper-slide1" style="background-image:url(https://source.unsplash.com/800x600/?tiger)"></div>
      <div class="swiper-slide swiper-slide1" style="background-image:url(https://source.unsplash.com/800x600/?water)"></div>
      <div class="swiper-slide swiper-slide1" style="background-image:url(https://source.unsplash.com/800x600/?dog)"></div>
      </div>

    <!-- Swiper - Add Pagination -->
    <div class="swiper-pagination swiper-pagination1"></div>
  </div>


    <!—HTML of swiper-2 -->

<div class="swiper-container swiper-container2">
  <div class="parallax-bg" style="background-image:url(https://source.unsplash.com/800x600/?space)" data-swiper-parallax="-23%"></div>
  <div class="swiper-wrapper">
    <div class="swiper-slide  swiper-slide2">
      <div class="title" data-swiper-parallax="-300">Slide 1</div>
      <div class="subtitle" data-swiper-parallax="-200">Subtitle</div>
      <div class="text" data-swiper-parallax="-100">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dictum mattis velit, sit amet faucibus
          felis iaculis nec. Nulla laoreet justo vitae porttitor porttitor. Suspendisse in sem justo.</p>
      </div>
    </div>
    <div class="swiper-slide swiper-slide2">
      <div class="title" data-swiper-parallax="-300" data-swiper-parallax-opacity="0">Slide 2</div>
      <div class="subtitle" data-swiper-parallax="-200">Subtitle</div>
      <div class="text" data-swiper-parallax="-100">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dictum mattis velit, sit amet faucibus
          felis iaculis nec. Nulla laoreet justo vitae porttitor porttitor. Suspendisse in sem justo. </p>
      </div>
    </div>
    <div class="swiper-slide swiper-slide2">
      <div class="title" data-swiper-parallax="-300">Slide 3</div>
      <div class="subtitle" data-swiper-parallax="-200">Subtitle</div>
      <div class="text" data-swiper-parallax="-100">
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam dictum mattis velit, sit amet faucibus
          felis iaculis nec. Nulla laoreet justo vitae porttitor porttitor. Suspendisse in sem justo.</p>
      </div>
    </div>
  </div>
  <!-- Add Pagination -->
  <div class="swiper-pagination swiper-pagination2 swiper-pagination-white"></div>
  <!-- Add Navigation -->
  <div class="swiper-button-prev swiper-button-white"></div>
  <div class="swiper-button-next swiper-button-white"></div>
</div>
JS:

/*  CSS of swiper-1 */

   
    .swiper-container1{
      width: 100%;
      padding-top: 50px;
      padding-bottom: 50px;
    }

    .swiper-slide1 {
      background-position: center;
      background-size: cover;
      width: 300px;
      height: 300px;

    }
  
/* CSS of swiper-2 */

.swiper-container2{
  position: relative;
  height: 100%;
  background: #eee;
  font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
  font-size: 14px;
  color: #000;
  margin: 0;
  padding: 0;

width: 100%;
height: 100%;
background: #000;
}

.swiper-slide2 {
font-size: 18px;
color: white;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 40px 60px;
}

.parallax-bg {
position: absolute;
left: 0;
top: 0;
width: 130%;
height: 100%;
-webkit-background-size: cover;
background-size: cover;
background-position: center;

}

.swiper-slide .title {
font-size: 41px;
font-weight: 300;
}

.swiper-slide .subtitle {
font-size: 21px;
}

.swiper-slide .text {
font-size: 14px;
max-width: 400px;
line-height: 1.3;

}
//  JS of swiper-1

var swiper = new Swiper('.swiper-container1', {
    effect: 'coverflow',
    grabCursor: true,
    centeredSlides: true,
    slidesPerView: 'auto',
    coverflowEffect: {
      rotate: 50,
      stretch: 0,
      depth: 100,
      modifier: 1,
      slideShadows: true,
    },
    pagination: {
      el: '.swiper-pagination1',
    },
  });


  // JS of swiper-2 

var swiper = new Swiper('.swiper-container2', {
  speed: 600,
  parallax: true,
  pagination: {
    el: '.swiper-pagination2',
    clickable: true,
  },
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
});
  • 添加另一个类,如:

    class="swiper-container two" ... 
    
  • 在js中附加类,如:

    new Swiper('.swiper-container.two', { ...
    

  • 这就是它对我的工作方式

    这似乎对我在nuxtjs中使用页面上的多个刷子有效

    在选项中使用了id而不是类

       <div
          :id="`swiper-button-prev-${element}`"
          class="swiper-button-prev"
        ></div>
        <div
          :id="`swiper-button-next-${element}`"
          class="swiper-button-next"
        ></div>
    
    为了获得唯一的id,我使用

    生成的输出示例: 元件:47bfe557-d75f-455c-9a37-85b7935b297b

    package.json

    "dependencies": {    
        "uuid": "^8.3.2"
     },
    
    在子组件上,可能不是最好的方法,但似乎有效


    谢谢你的帮助,但我相信我找到了答案。我在不触碰swiper.min.js的情况下就让它工作了。非常好的消息!很高兴你在没有干扰的情况下对它进行了排序:)将它添加到.js文件的方式与将它添加到内联js文件的方式相同,但在不同的位置几乎相同。嗨,当我们单击任意一个arr时,这一切都很好ows或子弹,所有这些都保持同步。只是问一下,是否可以使用触摸刷。您的演示链接已断开:
    new Swiper('.swiper-container.two', { ...
    
       <div
          :id="`swiper-button-prev-${element}`"
          class="swiper-button-prev"
        ></div>
        <div
          :id="`swiper-button-next-${element}`"
          class="swiper-button-next"
        ></div>
    
    navigation: {
      nextEl: `#swiper-button-next-${this.element}`,
      prevEl: `#swiper-button-prev-${this.element}`,
    },
    
    "dependencies": {    
        "uuid": "^8.3.2"
     },
    
    <ComponentName v-if="element" />
    
    import { v4 as uuidv4 } from 'uuid';
    
    data() {
      return {
        element: null,
      }
    }
    
    mounted() {
      this.element = uuidv4();
    }