Swiper-当中的swiper嵌套

这节课我们介绍swiper当中的swiper嵌套。
 
这次第一步有些不一样,虽然同样是要搭建swiper页面,但是我们在一个swiper页面当中的slide里面嵌套了一个swiper在里面。

<div class="swiper-container swiper-container-h">
        <div class="swiper-wrapper">
            <div class="swiper-slide">Horizontal Slide 1</div>
            <div class="swiper-slide">
                <div class="swiper-container swiper-container-v">
                    <div class="swiper-wrapper">
                        <div class="swiper-slide">Vertical Slide 1</div>
                        <div class="swiper-slide">Vertical Slide 2</div>
                        <div class="swiper-slide">Vertical Slide 3</div>
                        <div class="swiper-slide">Vertical Slide 4</div>
                        <div class="swiper-slide">Vertical Slide 5</div>
                    </div>
                    <div class="swiper-pagination swiper-pagination-v"></div>
                </div>
            </div>
            <div class="swiper-slide">Horizontal Slide 3</div>
            <div class="swiper-slide">Horizontal Slide 4</div>
        </div>
        <!-- Add Pagination -->
        <div class="swiper-pagination swiper-pagination-h"></div>
    </div>

我们可以看到,这次在swiper的外部容器当中添加了一个类名,swiper-container-h,这个类名其实我们可以随便取一个,作为一个标记,记录我们这个外部容器为哪一个swiper页面的外部容器,我们在初始化的时候是要绑定它的,然后有几个swiper的页面我们就要初始化几次,并且每一个初始化都要绑定到不同的swiper页面的外部容器上面,不然的话我们的页面样式就会错乱,下面进行初始化。

 var swiperH = new Swiper('.swiper-container-h', {
        pagination: '.swiper-pagination-h',
        paginationClickable: true,
        spaceBetween: 50
    });
    var swiperV = new Swiper('.swiper-container-v', {
        pagination: '.swiper-pagination-v',
        paginationClickable: true,
        direction: 'vertical',
        spaceBetween: 50
    });

这里因为有俩个swiper页面所以分别初始化了俩次,然后要分别设定每个swiper页面的CSS样式,以及每一个swiper页面当中的属性。注意,绑定的外部容器类名一定部能相同,不然一个页面初始化俩次会造成样式错乱。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我理解你的问题是说你在使用 Vue.js 框架中的 swiper-item 组件时,你想禁止它的 touchmove 事件,但是 @touchmove.stop 这个修饰符却不起作用。 首先, @touchmove.stop 这个修饰符是用来阻止浏览器的默认行为的,也就是阻止滑动事件冒泡。如果你想禁止 swiper-item 组件内部的 touchmove 事件,你可以在 swiper-item 组件内部监听 touchmove 事件,然后调用事件对象的 preventDefault 方法来阻止浏览器的默认行为,例如: ``` <template> <div class="swiper-item" @touchmove="handleTouchMove"> <!-- 你的内容 --> </div> </template> <script> export default { methods: { handleTouchMove(event) { event.preventDefault(); }, }, }; </script> ``` 但是如果你想要禁止 swiper-item 组件内部的 touchmove 事件,并且保留浏览器的默认行为(也就是说,浏览器仍然能够滑动),你可以在 swiper-item 组件内部监听 touchmove 事件,然后调用事件对象的 stopPropagation 方法来阻止事件冒泡,例如: ``` <template> <div class="swiper-item" @touchmove="handleTouchMove"> <!-- 你的内容 --> </div> </template> <script> export default { methods: { handleTouchMove(event) { event.stopPropagation(); }, }, }; </script> ``` 希望这些信息能帮助你解决问题。如果你还有其他问 ### 回答2: swiper-item @touchmove.stop=false 是一个用来控制swiper-item触摸移动事件的属性。当设置为false时,意味着允许swiper-item元素在触摸移动时继续响应事件。 然而,当设置为false时,它可能会导致一些不好的结果。首先,如果swiper-item所在的swiper容器有多个swiper-item元素并且进行了嵌套,那么一旦设置为false,就可能出现手指在一个swiper-item上滑动时,触发了其他swiper-item的滑动事件,这会导致用户体验上的混乱。 其次,设置为false可能引发一些性能问题。由于swiper-item上的touchmove事件会触发大量的操作,比如重新渲染、重绘等,如果多个swiper-item同时响应touchmove事件,会增加页面的负荷,从而导致页面卡顿或者响应延迟。 另外,当设置为false时,用户可能会遇到一些困扰。例如,在一个需要用户输入的表单中,如果设置了swiper-item @touchmove.stop=false,那么当用户尝试滑动屏幕时,可能会意外触发了其他元素的事件,而不是进行滑动操作,从而影响用户输入。 综上所述,尽管swiper-item @touchmove.stop=false提供了一种允许swiper-item元素在触摸移动时继续响应事件的方式,但由于可能带来混乱、性能问题和用户体验不佳等潜在问题,所以一般情况下不推荐使用。 ### 回答3: swiper-item标签的@touchmove.stop属性是用于阻止swiper-item组件在触摸移动时停止滚动的。当设置为false时,意味着不阻止swiper-item的滚动。 通常情况下,当我们在触摸swiper-item组件时,默认会暂停其滚动,以便更好地进行交互操作。然而,如果我们不希望触摸移动时停止swiper-item组件的滚动,就可以将@touchmove.stop属性设置为false。 虽然设定为false可以让swiper-item组件在触摸移动时继续滚动,但需要注意的是这可能会导致交互体验的不一致性。因为swiper-item通常是用于展示内容的容器,如果我们允许在滚动过程中进行触摸移动,可能会导致用户无法准确地点击所需的内容,降低了用户的交互效率。 因此,一般情况下建议使用默认的@touchmove.stop属性,让swiper-item在触摸时停止滚动,以确保用户能够更方便地与内容进行交互和操作。如果真的需要在触摸移动时继续滚动swiper-item,可以将@touchmove.stop属性设置为false,但要注意在设计和布局上做好充分的考虑,以保证用户能够舒适地使用该功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值