微信小程序拖拽排序列表的示例代码


Posted in Javascript onJuly 08, 2020

拖拽排序列表

微信小程序拖拽排序列表的示例代码

思路

界面分为两层:

  • 底层,正常列表展示,拖拽的时候不做处理(大牛直接加了动画,原谅我技艺不精,还没实现)
  • 顶层,movable-view组件,不长按不展示,之后长按才展示,且没有点击事件。

事件

主要监听:longpress , touchmove , touchend 三个事件

longpress

保障长按才有效,并设定许多其他值。

touchmove

滑动的时候触发

  • 判断是否需要滑动页面,因为 movable-area组件 滑动事件被catch掉,无法滑动;
  • 记录滑动经过的项,在页面【底层】设置经过项为其他样式(算是补足没有滑动动画的缺陷吧,不需要可以删除 lastTarget字段)。

touchend

滑动结束时触发

获取目标节点索引,将初始拖拽节点移动至目标节点,其中的关键代码为:

list.splice(futureIndex, 0, list.splice(dragElementIndex, 1)[0]); // 移动位置

(这行代码参考了Vue.Draggable中一行代码)

将其他设置置空

代码

代码片段

码云仓库 欢迎star、提问题。鞋鞋

示例

// 初始点击
  stratBtn(e){
    let index = http.dataIndex(e)[0];//获取当前点击的列表
    let busArr = this.data.busArr;//获取列表中的所有数组
    let pageY = Number(e.touches[0].pageY);//初始点击的Y点坐标
    let busActObj = busArr[index];//单独记录当前点击的数据
    this.setData({ //保存数据
      sPageY:pageY,
      mPageY:pageY,
      moveSortBox:true,
      clickIndex:index,
      busActObj:busActObj
    })
  },
  // 开始移动
  moveBtn(e){
    let pageY = Number(e.touches[0].pageY); //记录移动点的坐标
    this.setData({ //记录
      mPageY:pageY,
      moveSortBox:true,
    })
  },
  // 结束点击
  endBtn(e){
    let sPageY = Number(this.data.sPageY); //获取初始点的坐标
    let busArr = this.data.busArr; //获取数组
    let pageY = Number(e.changedTouches[0].pageY);//获取结束点的坐标
    let clickIndex = Number(this.data.clickIndex); //初始点的位置
    let busActObj = this.data.busActObj;//获取初始点的列表单独数据
    let position = parseInt((pageY-sPageY)/90)+(clickIndex+1); //每个盒子固定高度90px (结束点-初始点/盒子高度)+(初始点的位置+1)可以得到移动的位置
    busArr.splice(clickIndex,1);//删除初始数据
    busArr.splice(position,0,busActObj);//在移动点重新插入数据
    this.setData({//保存
      moveSortBox:false,
      busArr:busArr
    })
  },

参考链接

[1] SortableJS Vue.Draggable

[2] SortableJS Sortable

[3] SortableJS演示示例 Vue.Draggable

[4] 好想再胖十斤 25行代码解决小程序的拖拽排序

到此这篇关于微信小程序拖拽排序列表的示例代码的文章就介绍到这了,更多相关微信小程序拖拽排序列表内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
收藏Javascript中常用的55个经典技巧
Aug 12 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
May 24 Javascript
js函数setTimeout延迟执行的简单介绍
Jul 17 Javascript
js控制不同的时间段显示不同的css样式的实例代码
Nov 04 Javascript
JavaScript简介
Feb 15 Javascript
js实现iframe自动自适应高度的方法
Feb 17 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
Dec 14 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
Aug 30 Javascript
了解前端理论:rscss和rsjs
May 23 Javascript
JS数组方法push()、pop()用法实例分析
Jan 18 Javascript
微信小程序保存图片到相册权限设置
Apr 09 Javascript
es6数组includes()用法实例分析
Apr 18 Javascript
基于javascript canvas实现五子棋游戏
Jul 08 #Javascript
深度解读vue-resize的具体用法
Jul 08 #Javascript
详解React 条件渲染
Jul 08 #Javascript
webpack5 联邦模块介绍详解
Jul 08 #Javascript
实例讲解React 组件
Jul 07 #Javascript
JavaScript eval()函数定义及使用方法详解
Jul 07 #Javascript
详解React 元素渲染
Jul 07 #Javascript
You might like
微信企业转账之入口类分装php代码
2018/10/01 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
javascript EXCEL 操作类代码
2009/07/30 Javascript
Ruffy javascript 学习笔记
2009/11/30 Javascript
javascript demo 基本技巧
2009/12/18 Javascript
javascript css styleFloat和cssFloat
2010/03/15 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
python解析xml文件实例分享
2013/12/04 Python
pyside写ui界面入门示例
2014/01/22 Python
对numpy中轴与维度的理解
2018/04/18 Python
python计算日期之间的放假日期
2018/06/05 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
Python3进制之间的转换代码实例
2019/08/24 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
python else语句在循环中的运用详解
2020/07/06 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
教师评优的个人自我评价分享
2013/09/19 职场文书
上课说话检讨书大全
2014/01/22 职场文书
婚礼主持词开场白
2014/03/13 职场文书
大学中国梦演讲稿
2014/04/23 职场文书
运动会通讯稿100字
2015/07/20 职场文书