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


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的原理和实现技巧介绍
Nov 08 Javascript
jQuery动态效果显示人物结构关系图的方法
May 07 Javascript
JavaScript正则表达式匹配 div  style标签
Mar 15 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
Aug 01 Javascript
Backbone中View之间传值的学习心得
Aug 09 Javascript
three.js快速入门【推荐】
Jan 21 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
Nov 28 Javascript
自定义PC微信扫码登录样式写法
Dec 12 Javascript
JS 实现百度搜索功能
Feb 01 Javascript
详解如何用VUE写一个多用模态框组件模版
Sep 27 Javascript
小程序自定义单页面、全局导航栏的实现代码
Mar 15 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中读写文件实现代码
2011/10/20 PHP
PHP修改session_id示例代码
2014/01/08 PHP
[原创]PHP简单开启curl的方法(测试可行)
2016/01/11 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
vue2实现搜索结果中的搜索关键字高亮的代码
2018/08/29 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Python3爬虫学习入门教程
2018/12/11 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
访谈节目策划方案
2014/05/15 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
自荐信怎么写
2015/03/04 职场文书
七年级作文之环保作文
2019/10/17 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python