微信小程序 实现拖拽事件监听实例详解


Posted in Javascript onNovember 16, 2016

微信小程序 拖拽监听功能:

        在软件开发或者 APP应用开发的时候,经常会遇到拖拽监听,最近自己学习微信小程序的知识,就想实现这样的拖拽效果,这里就记录下。

需要做个浮在scroll-view之上的button.尝试了一下.

上GIF:

微信小程序 实现拖拽事件监听实例详解

Android中也会有类似移动控件的操作.思路差不多.获取到位移的X Y 的变量,给控件设置坐标.

1.index.wxml

../images/gundong.png" bindtap="ballClickEvent" style="bottom:{{ballBottom}}px;right:{{ballRight}}px;" bindtouchmove="ballMoveEvent">  
</image>

简单的设置一张图片,添加触摸事件监听.点击事件监听.根据触摸事件获取X Y位移,设置为image的位置

2.index.js

//index.js 
//获取应用实例 
var app = getApp() 
Page({ 
 data: { 
  ballBottom: 240, 
  ballRight: 120, 
  screenHeight: 0, 
  screenWidth: 0, 
 }, 
 onLoad: function () { 
[javascript] view plain copy
<span style="white-space:pre"> </span>//获取屏幕宽高 
  var _this = this; 
  wx.getSystemInfo({ 
   success: function (res) { 
    _this.setData({ 
     screenHeight: res.windowHeight, 
     screenWidth: res.windowWidth, 
    }); 
   } 
  }); 
 }, 
 ballMoveEvent: function (e) { 
  console.log('我被拖动了....') 
  var touchs = e.touches[0]; 
  var pageX = touchs.pageX; 
  var pageY = touchs.pageY; 
  console.log('pageX: ' + pageX) 
  console.log('pageY: ' + pageY)
//防止坐标越界,view宽高的一般 
  if (pageX < 30) return; 
  if (pageX > this.data.screenWidth - 30) return; 
  if (this.data.screenHeight - pageY <= 30) return; 
  if (pageY <= 30) return;
//这里用right和bottom.所以需要将pageX pageY转换 
  var x = this.data.screenWidth - pageX - 30; 
  var y = this.data.screenHeight - pageY - 30; 
  console.log('x: ' + x) 
  console.log('y: ' + y) 
  this.setData({ 
   ballBottom: y, 
   ballRight: x 
  }); 
 },
//点击事件 
 ballClickEvent: function () { 
  console.log('点击了....') 
 } 
})

3.index.wxss

这里需要设置z-index

.image-style{ 
 position: absolute; 
 bottom: 240px; 
 right: 100px; 
 width: 60px; 
 height: 60px; 
 z-index: 100; 
}

Javascript 相关文章推荐
jquery mobile动态添加元素之后不能正确渲染解决方法说明
Mar 05 Javascript
jquery实现多条件筛选特效代码分享
Aug 28 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
动态加载js、css的简单实现代码
May 26 Javascript
Javascript 函数的四种调用模式
Nov 05 Javascript
完美解决IE不支持Data.parse()的问题
Nov 24 Javascript
JS实现的五级联动菜单效果完整实例
Feb 23 Javascript
利用C/C++编写node.js原生模块的方法教程
Jul 07 Javascript
JS运动特效之完美运动框架实例分析
Jan 24 Javascript
vue刷新和tab切换实例
Feb 11 Javascript
Vue + ts实现轮播插件的示例
Nov 10 Javascript
JavaScript代码实现简单计算器
Dec 27 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 #Javascript
JavaScript仿微博发布信息案例
Nov 16 #Javascript
使用Node.js给图片加水印的方法
Nov 15 #Javascript
Node.js批量给图片加水印的方法
Nov 15 #Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
Nov 15 #Javascript
AngularJS extend用法详解及实例代码
Nov 15 #Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 #Javascript
You might like
丧钟首部独立剧集《丧钟:骑士与龙》北美正式开播,场面血腥
2020/04/09 欧美动漫
深入PHP autoload机制的详解
2013/06/09 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
javascript 快速排序函数代码
2012/05/30 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
jQuery Easyui DataGrid点击某个单元格即进入编辑状态焦点移开后保存数据
2016/08/15 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
JS实现移动端按首字母检索城市列表附源码下载
2017/07/05 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
深入理解python中sort()与sorted()的区别
2018/08/29 Python
Python使用configparser库读取配置文件
2020/02/22 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
GWebs公司笔试题
2012/05/04 面试题
食品营养与检测应届生求职信
2013/11/08 职场文书
司机岗位职责
2013/11/15 职场文书
文言文形式的学生求职信
2013/12/03 职场文书
优秀实习自我鉴定
2013/12/04 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
优秀大学生自荐信
2014/06/09 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
关于环保的宣传稿
2015/07/23 职场文书