收藏
回答

swiper会鬼畜现象

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug swiper 客户端 7.0.4 2.7.3

- 当前 Bug 的表现(可附上截图)


- 预期表现


- 复现路径


- 提供一个最简复现 Demo

wxml页面:

<view class="banner">

<swiper class="bannerswipers" autoplay="{{autoplay}}" current="{{currentSwiper}}" bindchange="swiperChange" circular="{{circular}}" bindanimationfinish="changeGoodsSwip">

<block wx:for="{{imgs}}" wx:key="{{index}}">

<swiper-item>

<image src="{{item.url}}"></image>

</swiper-item>

</block>

</swiper>

<!-- 重置小圆点的样式 -->

<view class="bannerdots flex alignC flexC">

<block wx:for="{{imgs}}" wx:key="{{index}}">

<view class="bannerdot{{index == currentSwiper ? ' banneractive' : ''}}"></view>

</block>

</view>

</view>


js相关代码片段:


Page({

data: {

imgs: [

{ url: '../images/banner1.png' },

{ url: '../images/banner2.png' },

{ url: '../images/banner3.png' }

],

imgSelect: [

{ url: '../images/c.png', name: '订单开票' },

{ url: '../images/b.png', name: '扫码开票' },

{ url: '../images/a.png', name: '我的发票' }

],

currentSwiper: 0,

autoplay: true,

circular: true,

},

changeGoodsSwip: function (detail) {

if (detail.detail.source == "touch") {

//当页面卡死的时候,current的值会变成0

if (detail.detail.source == "touch") {

//防止swiper控件卡死

if (this.data.currentSwiper == 0 && this.data.preIndex>1 ) {//卡死时,重置current为正确索引

this.setData({ currentSwiper: this.data.preIndex });

}

else {//正常轮转时,记录正确页码索引

this.setData({ preIndex: this.data.currentSwiper });

}

}

}

},

swiperChange: function (e) {

this.setData({

currentSwiper: e.detail.current

})

}

})


最后一次编辑于  07-11  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

1 个回答

  • 是柿子啊
    是柿子啊
    07-11

    具体是什么问题?

    07-11
    赞同
    回复 6
    • node
      node
      07-11
      就是有的时候会卡死,然后就是一直左右抖动,但是你重新删了进下就会好,偶尔会出现
      07-11
      回复
    • 是柿子啊
      是柿子啊
      07-11回复node

      麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

      07-11
      回复
    • never grow old🌟
      never grow old🌟
      08-09回复node
      你好,请问这个问题你现在解决了么?
      08-09
      回复
    • node
      node
      08-09回复never grow old🌟
      恩 具体原因还是没根治 但是可以用autoplay 这个属性 你在设置默认false 然后在onHide里面设置为false onShow里面设置为true
      08-09
      回复
    • never grow old🌟
      never grow old🌟
      08-09回复node
      好的 太感谢了
      08-09
      回复
    查看更多(1)