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


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 相关文章推荐
javascript比较两个日期的先后示例代码
Dec 31 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
Aug 11 Javascript
jQuery选择器用法实例详解
Dec 17 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
Jun 13 Javascript
D3.js实现柱状图的方法详解
Sep 21 Javascript
html5 canvas 详细使用教程
Jan 20 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
Mar 22 Javascript
Node.js 中使用 async 函数的方法
Nov 20 Javascript
JS实现对json对象排序并删除id相同项功能示例
Apr 18 Javascript
关于在LayUI中使用AJAX提交巨坑记录
Oct 25 Javascript
javascript利用键盘控制小方块的移动
Apr 20 Javascript
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
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
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
js实现导航跟随效果
2018/11/17 Javascript
JavaScript 实现自己的安卓手机自动化工具脚本(推荐)
2020/05/13 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
pycharm 使用心得(二)设置字体大小
2014/06/05 Python
Python中IPYTHON入门实例
2015/05/11 Python
Python读写unicode文件的方法
2015/07/10 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
函授毕业生自我鉴定
2013/11/06 职场文书
2014年幼儿园学期工作总结
2014/12/05 职场文书
大学生个人总结范文
2015/02/15 职场文书
2015年预算员工作总结
2015/05/14 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python