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


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 相关文章推荐
jQuery中val()方法用法实例
Dec 25 Javascript
JavaScript中的getDay()方法使用详解
Jun 09 Javascript
jQuery实现简单滚动动画效果
Apr 07 Javascript
基于jQuery倒计时插件实现团购秒杀效果
May 13 Javascript
实现一个简单的vue无限加载指令方法
Jan 10 Javascript
jQuery中用on绑定事件时需注意的事项
Mar 19 Javascript
ES6下React组件的写法示例代码
May 04 Javascript
基于 Vue 的树形选择组件的示例代码
Aug 18 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
Jul 23 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
May 09 Javascript
浅析vue-router中params和query的区别
Dec 24 Javascript
vue 使用原生组件上传图片的实例
Sep 08 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
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
Linux php 中文乱码的快速解决方法
2016/05/13 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
javascript实用方法总结
2015/02/06 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
2020/12/25 Vue.js
python ip正则式
2009/05/07 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
python复制文件到指定目录的实例
2018/04/27 Python
Django实现基于类的分页功能
2019/10/31 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
详解Python设计模式之策略模式
2020/06/15 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
TCP/IP的分层模型
2013/10/27 面试题
中学运动会广播稿
2014/01/19 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
意向书范文
2014/03/31 职场文书
单位承诺书格式
2014/05/21 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
使用Java去实现超市会员管理系统
2022/03/18 Java/Android
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL