小程序中 swiper添加左右按钮键

本文介绍了如何使用WXML和JavaScript在微信小程序中实现一个带有指示器的轮播图组件,通过`swiper`组件展示多张图片,并提供了上一张和下一张的切换功能。代码展示了如何设置图片路径、指示器样式和事件处理函数。
摘要由CSDN通过智能技术生成

1、index.wxml中

<view class="materialBigImg">
  <swiper indicator-dots circular interval="2000" duration="500" indicator-color="rgba(255, 255, 255, .5)" indicator-active-color="#fff" current="{{swiper.current}}">
    <swiper-item wx:for="{{swiper.imgUrls}}" wx:key="index">
      <image src="{{offlineImgUrl+item}}" mode="widthFix"></image>
    </swiper-item>
  </swiper>
  <view class="prevBtn" bindtap="prevImg">
    <image src="{{icon.prevBtn}}" mode="widthFix"></image>
  </view>
  <view class="nextBtn" bindtap="nextImg">
    <image src="{{icon.nextBtn}}" mode="widthFix"></image>
  </view>
</view>

2、js中代码

data:{
//素材图片数据
    swiper: {
      imgUrls: [
        'materialImg.jpg',
        'materialImg.jpg',
        'materialImg.jpg',
      ],
      current: 0,
    },
}
/*
  *@Description: 查看上一张
  *@MethodAuthor: LiJuncai
  *@Date: 2022-06-09 17:50:26
 */
 prevImg: function () {
   var swiper = this.data.swiper;
   var current = swiper.current;
   swiper.current = current > 0 ? current - 1 : swiper.imgUrls.length - 1;
   this.setData({
     swiper: swiper,
   })
 },
 /*
 *@Description: 查看下一张
 *@MethodAuthor: LiJuncai
 *@Date: 2022-06-09 17:50:26
*/
 nextImg: function () {
   console.log(2);
   var swiper = this.data.swiper;
   var current = swiper.current;
   swiper.current = current < (swiper.imgUrls.length - 1) ? current + 1 : 0;
   this.setData({
     swiper: swiper,
   })
 },
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序实现右滑删除按钮,一般可以使用 `swiper` 组件来实现。具体实现步骤如下: 1. 在列表项添加 `swiper-item` 组件,用于包裹右滑删除按钮。 2. 在 `swiper-item` 组件添加一个 `view` 组件,用于显示删除按钮,并设置该组件的样式为向左浮动。 3. 在 `swiper` 组件上添加 `bindchange` 事件,用于监听滑动事件。 4. 在 `bindchange` 事件获取当前滑动的 `swiper-item` 组件的 `current` 值,通过 `setData` 方法更新 `swiper-item` 组件的样式,使其向左浮动显示删除按钮。 下面是一个示例代码,供参考: ``` <!-- 列表项 --> <view class="list-item"> <!-- swiper 组件 --> <swiper class="swiper" bindchange="onSwiperChange" data-index="{{index}}"> <!-- swiper-item 组件 --> <swiper-item> <!-- 删除按钮 --> <view class="delete-btn" bindtap="onDelete">删除</view> </swiper-item> </swiper> <!-- 列表内容 --> <view class="content">{{item.content}}</view> </view> ``` ``` // 页面逻辑 Page({ data: { list: [ { content: '列表项1' }, { content: '列表项2' }, { content: '列表项3' } ] }, // swiper 组件变化事件 onSwiperChange: function(e) { let index = e.currentTarget.dataset.index; let current = e.detail.current; if (current === 1) { // 如果当前滑动到了第二个 swiper-item,更新列表项样式 let key = `list[${index}].swiperClass`; this.setData({ [key]: 'swiper-left' }); } }, // 删除按钮点击事件 onDelete: function(e) { let index = e.currentTarget.dataset.index; // 在数据删除列表项 let list = this.data.list; list.splice(index, 1); // 更新数据 this.setData({ list: list }); } }) ``` ``` /* 样式文件 */ .list-item { position: relative; height: 50px; line-height: 50px; border-bottom: 1px solid #eee; } .swiper { position: absolute; right: 0; top: 0; bottom: 0; width: 120rpx; } .swiper-item { height: 50px; } .delete-btn { position: absolute; right: 0; top: 0; bottom: 0; width: 60rpx; background-color: red; color: #fff; text-align: center; line-height: 50px; } .swiper-left { transform: translateX(-60rpx); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值