微信小程序之拖拽排序(代码分享)


Posted in Javascript onJanuary 21, 2017

index.wxml

<!--index.wxml-->
<view class="container">
 <view bindtap="box" class="box" >
 <view disable-scroll="true" wx:for="{{content}}" bindtouchmove="move" bindtouchstart="movestart" bindtouchend="moveend" data-index="{{item.id}}" data-main="{{mainx}}" class="main {{mainx == item.id? 'mainmove':'mainend'}}" style="left:{{start.x}}px; top:{{start.y}}px">{{item.content}}</view>
 </view>
</view>

index.js

//index.js
//获取应用实例
var app = getApp();
var x,y,x1,y1,x2,y2,index,currindex,n,yy;
var arr1 = [{content:11,id:1},{content:22,id:2},{content:33,id:3},{content:44,id:4},{content:55,id:5}];
Page({
 data: {
 mainx:0,
 content:[{content:11,id:1},{content:22,id:2},{content:33,id:3},{content:44,id:4},{content:55,id:5}],
 start:{x:0,y:0}
 },
 movestart:function(e){
 currindex = e.target.dataset.index;
  x = e.touches[0].clientX;
  y = e.touches[0].clientY;
  x1 = e.currentTarget.offsetLeft;
  y1 = e.currentTarget.offsetTop;
 },
 move:function(e){
 yy = e.currentTarget.offsetTop;
 x2 = e.touches[0].clientX-x+x1;
 y2 = e.touches[0].clientY-y+y1;
 this.setData({
  mainx:currindex,
  opacity:0.7,
  start:{x:x2,y:y2}
 })
 },
 moveend:function(){
 if(y2 != 0){
  var arr = [];
  for(var i=0; i<this.data.content.length; i++){
  arr.push(this.data.content[i]);
  }
  var nx = this.data.content.length;
  n=1;
  for(var k=2; k<nx; k++){
  if(y2>(52*(k-1)+k*2-26)){
   n=k;
  }
  }
  if(y2>(52*(nx-1)+nx*2-26)){
  n = nx;
  }
  console.log(arr);
  console.log(arr1)
  arr.splice((currindex-1),1);
  arr.splice((n-1),0,arr1[currindex-1]);
  arr1 = [];
  for(var m=0; m<this.data.content.length; m++){
  console.log(arr[m]);
  arr[m].id = m+1;
  arr1.push(arr[m]);
  }
  // console.log(arr1);
  this.setData({
  mainx:"",
  content:arr,
  opacity:1
  })
 }
 }
})

index.wxss

.container {
 height: 100%;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: space-between;
 padding: 200rpx 0;
 box-sizing: border-box;
} 
.box{width:300px; position: relative}
.main{width: 90%; height:50px; background: #eee; border: 1px solid #ccc; margin:2px auto; text-align: center; line-height: 50px;}
.mainmove{position: absolute; opacity: 0.7}
.maind{background: #fff; border:1px dashed #efefef;}
.mainend{position: static; opacity: 1;}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript学习随笔(使用window和frame)的技巧
Mar 08 Javascript
xml 与javascript结合的问题解决方法
Mar 24 Javascript
分享20款好玩的jQuery游戏
Apr 17 Javascript
jquery分页插件AmSetPager(自写)
Apr 15 Javascript
css结合js制作下拉菜单示例代码
Feb 27 Javascript
浅谈Javascript中匀速运动的停止条件
Dec 19 Javascript
js控制TR的显示隐藏
Mar 04 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
Dec 08 Javascript
javascript中的深复制详解及实例分析
Dec 29 Javascript
bootstrap table插件的分页与checkbox使用详解
Jul 23 Javascript
Vue编写多地区选择组件
Aug 21 Javascript
vue.js中proxyTable 转发请求的实现方法
Sep 20 Javascript
微信小程序 利用css实现遮罩效果实例详解
Jan 21 #Javascript
JavaScript数组去重的6个方法
Jan 21 #Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
Jan 21 #Javascript
JS常用知识点整理
Jan 21 #Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
Jan 21 #Javascript
原生js实现可拖动的登录框效果
Jan 21 #Javascript
微信小程序 WebSocket详解及应用
Jan 21 #Javascript
You might like
PHP 和 COM
2006/10/09 PHP
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
在PHP程序中使用Rust扩展的方法
2015/07/03 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
Python requests接口测试实现代码
2020/09/08 Python
python中count函数知识点浅析
2020/12/17 Python
HTML5 Canvas的事件处理介绍
2015/04/24 HTML / CSS
美国在线面料商店:Online Fabric Store
2018/07/26 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
如何用JQuery进行表单验证
2013/05/29 面试题
生产主管岗位职责
2013/11/10 职场文书
应届行政管理专业个人自我评价
2013/12/28 职场文书
趣味活动策划方案
2014/02/08 职场文书
物流管理专业毕业生自荐信
2014/03/04 职场文书
公司股东合作协议书
2014/09/14 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
virtualenv隔离Python环境的问题解析
2022/06/21 Python