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