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


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 避免闭包引发的问题
Mar 17 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
Aug 29 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
Sep 12 Javascript
JavaScript仿支付宝6位数字密码输入框
Dec 29 Javascript
如何使用bootstrap框架 bootstrap入门必看!
Apr 13 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
Apr 25 Javascript
AngularJs实现聊天列表实时刷新功能
Jun 15 Javascript
Node.js服务器开启Gzip压缩教程
Aug 11 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
详解bootstrap-fileinput文件上传控件的亲身实践
Mar 21 Javascript
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
May 14 Javascript
vue-cli3 热更新配置操作
Sep 18 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
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
Vue自定义指令详解
2017/07/28 Javascript
Javascript实现运算符重载详解
2018/04/07 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
Python中模块string.py详解
2017/03/12 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
css3 border-radius属性详解
2017/07/05 HTML / CSS
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
学生会干部自荐信
2014/02/04 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
gojs实现蚂蚁线动画效果
2022/02/18 Javascript
Python可视化学习之seaborn调色盘
2022/02/24 Python