微信小程序 滑动按钮

原生微信小程序实现滑动按钮

本文将介绍如何使用微信小程序中的 movable-view 和 movable-area 组件实现滑动按钮的功能,同时也会介绍一些注意事项。如果您还不熟悉这些组件的用法,可以先查看微信小程序官方文档。

注意

  • movable-view必须在 movable-area 组件中,并且必须是直接子节点
  • 在使用 movable-view 组件时,要特别注意绑定的事件,避免多次触发,造成不必要的问题。

实现过程

在 wxml 文件中,需要将 movable-view 放置在 movable-area 组件内。以下是示例代码:

<!-- 记得写样式-->
<movable-area class="movable-area">
  <!-- 滑块底部显示文案 -->
  <!-- 注意:out-of-bounds必须为true -->
  <movable-view
    class="movable-view"  
    direction="horizontal"
    out-of-bounds="{{true}}" 
    x="{{movableX}}"
    bindchange="bottomChange"
    bindtouchend="touchend"
  >
    <van-icon name="arrow" />
    <van-icon name="arrow" />
    <van-icon name="arrow" />
  </movable-view>
</movable-area>

在 js 文件中,需要绑定 bottomChange 和 touchend 事件,实现滑动按钮的功能。

bottomChange({ detail }) {
// detail.source === "touch-out-of-bounds" 代表滑块滑动到最右侧或者最左侧;注意:滑动到最一侧后,滑动没有结束时会多次触发
// detail.x > 0 判断是否为向右侧滑动,可根据需求修改
 if (detail.source === "touch-out-of-bounds" && detail.x > 0) {
 	// 用于记录滑动状态,默认为 false,此处判断为防止多次触发
   if (!this.data.flag) {
   // 执行业务代码,注意:执行完成之后需将滑块位置重置到初始位置
     console.log("滑块已到达终点");
   }
   this.setData({
     flag: true, // 滑动完成,更新状态
   });
 }
},
touchend() {
// 触摸结束后判断是否滑动完成,没有则重置滑块位置为初始位置
 if (this.data.flag) {
   this.setData({
     flag: false, //触摸结束且滑动完成,重置状态
   });
 } else {
   this.setData({
     movableX: 0,// 触摸结束,但滑动没有完成,重置滑块位置
   });
 }
},

如果有什么不正确的欢迎各位大牛指正,有更好的实现方法也可以留言,一起进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值