2021-4-29 工作记录--swiper嵌套(两个水平swiper) + swiper如何禁止用户滑动

一、swiper嵌套(两个水平swiper)

<link rel="stylesheet" href="/assets/css/swiper.min.css">

<!--HTML-->
    <div aos="fade-left" aos-duration="600">
        <!--大写英语字母-->
        <div class="info info_show w">PRODUCT.</div>
        <div class="keyword_content1 show_pro w">产品展示</div>
        <div class="pro_all">
            <div class="show_bg"></div>
            <div class="show_icon_t" onclick="nextProduct()"></div>
            <div class="show_icon_b" onclick="lastProduct()"></div>
            <div class="show_page">
                <div class="show_page_num"><span class="current-pro-index">01</span>/{if count($data.product) <10}0{/if}{:count($data.product)}</div>
                <div class="show_page_change">
                    <span class="progress" style="width: {php} echo 1/count($data['product'])*100{/php}%"></span>
                </div>

                <div class="show_page_text"></div>
            </div>
            <!-- Swiper -->
            <div class="swiper-container swiper-container-h show_content_r">
                <div class="swiper-wrapper">
                    {foreach $data.product as $k=>$v}
                    <div class="swiper-slide" data-name="{$k}">
                        <div class="swiper-container swiper-container-v show_con">
                            <div class="swiper-wrapper">
                                {foreach $v as $key=>$item}
                                <a class="swiper-slide swiper_slide0" href="/productDetail?id={$item.id}">
                                    <div class="product-box">
                                        <div class="product-img">
                                            <div class="pro_img"><img src="{$item.img | get_file_path}" alt=""></div>
                                        </div>
                                        <ul>
                                            <li>{$item.en_title}</li>
                                            <li>{$item.title}</li>
                                        </ul>
                                    </div>
                                </a>
                                {/foreach}
                            </div>
                            <div class="swiper-pagination swiper-pagination-v"></div>
                        </div>
                    </div>
                    {/foreach}
                </div>
            </div>
        </div>
    </div>
    
 <!--CSS-->
    根据需要自己修改    
<!--JS-->
<script src="/assets/js/swiper.min.js"></script>
	<script>
		function lastProduct() {
    swiperH.slidePrev();
}
function nextProduct() {
    swiperH.slideNext()
}
var swiperH = new Swiper('.swiper-container-h', {
    spaceBetween: 10,
    on:{
        init(){
            var name = $(".swiper-container-h>div>div.swiper-slide").eq(this.activeIndex).attr('data-name');
            $(".show_page_text").text(name);
        },
        slideChangeTransitionEnd: function(){
            var current = this.activeIndex+1;
            $(".current-pro-index").text('0'+current);
            var name = $(".swiper-container-h>div>div.swiper-slide").eq(this.activeIndex).attr('data-name');
            $(".show_page_text").text(name);
            var length = $(".swiper-container-h>div>div").length;
            var width = (current/length)*100+'%';
            $(".progress").css({
                width:width,
            });
        },
    }
});
var swiperV = new Swiper('.swiper-container-v', {
    // direction: 'vertical',
    spaceBetween: 10,
    slidesPerView:4,
    nested:true,
    resistanceRatio: 0,
});

	</script>

一、点击对应按钮,外层的swiper轮播图进行滑动:
在这里插入图片描述
在这里插入图片描述
二、轮播图滑动时,下面的数字、文字和进度条跟着变化:
在这里插入图片描述
注意:与html里面的相对应
在这里插入图片描述
三、记住这两个经常用到的swiper属性:
在这里插入图片描述
swiper的其他属性请看:swiper官网的文档部分

二、swiper如何禁止用户滑动

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

小呀小萝卜儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值