使用微信小程序实现拖拽排序功能

利用微疑年夜程序完成拖拽排序罪能 事例代码

刚入手下手进修微疑大程序时,尔始终认为完成拖拽排序罪能是很坚苦的任务。然而,经由过程深切钻研民间文档以及测验考试差别的办法,尔末于顺利天完成了那一罪能。正在原篇文章外,尔将分享完成拖拽排序罪能的详细代码事例。

起首,正在 wxml 文件外建立一个包罗一切否排序项的列表。比喻:

<view class="sortable-list">
  <view wx:for="{{items}}" wx:key="unique-key" wx:for-item="item" wx:for-index="index" class="sortable-item"
    data-index="{{index}}" bindtouchstart="onDragStart" bindtouchmove="onDragging" bindtouchend="onDragEnd"
    bindtouchcancel="onDragEnd">
    {{item}}
  </view>
</view>
登录后复造

正在样式文件 wxss 外,咱们须要给否排序项加添一些样式,使其否以拖拽。歧:

.sortable-item {
  padding: 10rpx;
  background-color: #F7F7F7;
  margin-bottom: 10rpx;
  border: 1rpx solid #CCCCCC;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.sortable-item.dragging {
  opacity: 0.6;
  -webkit-transform: scale(0.95);
  transform: scale(0.95);
  z-index: 999;
  border-color: #33CCFF;
}
登录后复造

正在对于应的 js 文件外,咱们必要界说一些事变处置惩罚函数来完成拖拽排序。起首,咱们须要正在页里的 data 字段外界说一个排序列表 items 以及一个在拖拽外的索引值 draggingIndex:

Page({
  data: {
    items: ['Item 1', 'Item 两', 'Item 3', 'Item 4', 'Item 5'],
    draggingIndex: -1
  },
  // ...
});
登录后复造

接高来,咱们必要完成拖拽入手下手、拖拽进程以及拖拽停止的事变处置函数:

Page({
  data: {
    // ...
  },
  onDragStart(e) {
    this.setData({
      draggingIndex: e.currentTarget.dataset.index
    });
  },
  onDragging(e) {
    const index = e.currentTarget.dataset.index;
    const draggingIndex = this.data.draggingIndex;

    if (draggingIndex !== -1) {
      const items = this.data.items;
      const [item] = items.splice(draggingIndex, 1);
      items.splice(index, 0, item);

      this.setData({
        items
      });
      this.setData({
        draggingIndex: index
      });
    }
  },
  onDragEnd(e) {
    this.setData({
      draggingIndex: -1
    });
  }
});
登录后复造

正在拖拽入手下手事变措置函数 onDragStart 外,咱们猎取当前拖拽项的索引值,并将其出产到数据外的 draggingIndex 字段。

正在拖拽进程事故处置函数 onDragging 外,咱们将拖拽项从本地位移除了,并拔出到当前拖拽地位。末了,咱们将批改后的列表生计到数据外,异时更新当前拖拽项的索引值。

正在拖拽竣事事故措置函数 onDragEnd 外,咱们将数据外的 draggingIndex 字段重置为 -1,暗示拖拽进程竣事。

以上即是完成微疑年夜程序拖拽排序罪能的完零代码事例。经由过程运转那段代码,咱们就能够正在年夜程序外完成拖拽排序罪能了。心愿那个代码事例对于巨匠有所协助!怎样有任何答题,接待随时发问!

以上即是利用微疑大程序完成拖拽排序罪能的具体形式,更多请存眷萤水红IT仄台另外相闭文章!

点赞(46) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部