taro-vue2.x跨端开发之swiper(二)

本文档记录了在使用 Taro-Vue 框架开发过程中遇到的 Swiper 组件问题。问题一:indicatorDots 设置为 true 后,指示点默认样式透明导致无法显示。解决方法是检查并调整样式以显示指示点。问题二:onChange 事件监听不生效,实际应使用 @change 事件。示例代码展示了正确的事件绑定方式。通过这些解决方案,可以更好地理解和使用 Taro 的 Swiper 组件。
摘要由CSDN通过智能技术生成

持续taro-vue框架的踩坑之路,今天说一下taro---swiper内置组件的小问题吧,首先看一下文档:(官方文档看起来有点不舒服,手动整理一下)

参数类型默认值必填说明
indicatorDotsbooleanfalse是否显示面板指示点
indicatorColorstring"rgba(0, 0, 0, .3)"指示点颜色
indicatorActiveColorstring"#000000"当前选中的指示点颜色
autoplaybooleanfalse是否自动切换
currentnumber0当前所在滑块的 index
currentItemIdstring""当前所在滑块的 item-id ,不能与 current 被同时指定
intervalnumber5000自动切换时间间隔
durationnumber500滑动动画时长
circularbooleanfalse是否采用衔接滑动
verticalbooleanfalse滑动方向是否为纵向
previousMarginstring"0px"前边距,可用于露出前一项的一小部分,接受 px 和 rpx 值
nextMarginstring"0px"后边距,可用于露出后一项的一小部分,接受 px 和 rpx 值
displayMultipleItemsnumber1同时显示的滑块数量
skipHiddenItemLayoutbooleanfalse是否跳过未显示的滑块布局,设为 true 可优化复杂情况下的滑动性能,但会丢失隐藏状态滑块的布局信息
easingFunction"default" | "linear" | "easeInCubic" | "easeOutCubic" | "easeInOutCubic""default"指定 swiper 切换缓动动画类型
change(onChange)BaseEventOrigFunction<onChangeEventDeatil> current 改变时会触发 change 事件
onTransitionBaseEventOrigFunction<onTransitionEventDetail> swiper-item 的位置发生改变时会触发 transition 事件
onAnimationFinishBaseEventOrigFunction<onChangeEventDeatil> 动画结束时会触发 animationfinish 事件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

有两个小问题如上文档标红所示:

1、indicatorDots 表示是否显示指示点,在代码里面设置为true,浏览器打开我们并没有看到指示点,原因是这个属性设置没有生效。。。请看下图:

如图所示我们是设置了显示指示点,但是指示点的盒子默认样式竟然是透明。。。fuck

接下来说一下swiper的动画事件,这个也是我们常用的。。。

文档标红的是onChange 事件,于是我们是不是可以直接在代码上拿来用呢?

显然是不行的,不管我们是@onChange,还是:onChange都不会生效,经过自己的反复尝试,原来是@change,事件才会生效,请看下图:这个才是我们想要的结果


<template>
  <view class="summitMeet">
      <view class="swiperBox">
        <swiper
          class='swiper'
          indicatorColor='#fff'
          indicatorActiveColor='#454545'
          :current="swiperInfo.current"
          previous-margin="28px" 
          next-margin="28px"  
          :duration="swiperInfo.duration"
          :interval="swiperInfo.interval"
          :circular="swiperInfo.isCircular"
          :autoplay="swiperInfo.isAutoplay" 
          :skipHiddenItemLayout="swiperInfo.isHiddenItemLayout"
          @change="swiperChange"
          :indicatorDots="swiperInfo.hasIndicatorDots">
          <swiper-item v-for="(item, idx) in imgUrls" :key="idx">
            <view class="imgBox">
              <image :src="item" class="slide-image" />
            </view>
          </swiper-item>
        </swiper>
      </view>
  </view>
</template>


methods: {
    swiperChange(e){
      console.log(e);
      this.current=e.detail.current
    }
  }

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值