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


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 相关文章推荐
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
Jan 22 Javascript
Javascript学习笔记9 prototype封装继承
Jan 11 Javascript
JavaScript中OnLoad几种使用方法
Dec 15 Javascript
利用了jquery的ajax实现二级联互动菜单
Dec 02 Javascript
jquery实现更改表格行顺序示例
Apr 30 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
Mar 03 Javascript
JQuery用户名校验的具体实现
Mar 18 Javascript
基于JS代码实现当鼠标悬停表格上显示这一格的全部内容
Jun 12 Javascript
JS实现输入框提示文字点击时消失效果
Jul 19 Javascript
jQuery联动日历的实例解析
Dec 02 Javascript
React学习笔记之高阶组件应用
Jun 02 Javascript
vue用BMap百度地图实现即时搜索功能
Sep 26 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
在项目中寻找代码的坏命名
2012/07/14 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
jQuery中not()方法用法实例
2015/01/06 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
python导入模块交叉引用的方法
2019/01/19 Python
基于python的Paxos算法实现
2019/07/03 Python
简单了解django orm中介模型
2019/07/30 Python
Python ATM功能实现代码实例
2020/03/19 Python
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
师范生自荐信
2013/10/27 职场文书
个人教师自我评价范文
2013/12/02 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
董事长助理岗位职责
2014/02/18 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
中国入世承诺
2014/04/01 职场文书
作文评语怎么写
2014/12/25 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书