微信小程序实现拖拽 image 触摸事件监听的实例


Posted in Javascript onAugust 17, 2017

微信小程序实现拖拽 image 触摸事件监听的实例

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

实现效果图:

微信小程序实现拖拽 image 触摸事件监听的实例

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

1.index.wxml

<image class="image-style" src="../../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 () { //获取屏幕宽高 
  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 相关文章推荐
浅析XMLHttpRequest的缓存问题
Dec 13 Javascript
js将控件隐藏及display属性的使用介绍
Dec 30 Javascript
setInterval与clearInterval的使用示例代码
Jan 28 Javascript
Node.js中使用计时器定时执行函数详解
Aug 15 Javascript
angularJS中$apply()方法详解
Jan 07 Javascript
原生javascript实现图片按钮切换
Jan 12 Javascript
jQuery深拷贝Json对象简单示例
Jul 06 Javascript
JS中对数组元素进行增删改移的方法总结
Dec 15 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
Jun 26 jQuery
vue router仿天猫底部导航栏功能
Oct 18 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
Sep 12 Javascript
JS代码检查工具ESLint介绍与使用方法
Feb 04 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
Aug 17 #Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 #Javascript
Angular实现图片裁剪工具ngImgCrop实践
Aug 17 #Javascript
jQuery Layer弹出层传值到父页面的实现代码
Aug 17 #jQuery
jQuery条件分页 代替离线查询(附代码)
Aug 17 #jQuery
vue中appear的用法
Aug 17 #Javascript
Angularjs单选框相关的示例代码
Aug 17 #Javascript
You might like
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
php获取远程文件的内容和大小
2015/11/03 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
js实现文字在按钮上滚动的方法
2015/08/20 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
python实现list由于numpy array的转换
2018/04/04 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
JNI的定义
2012/11/25 面试题
物流管理毕业生自荐信
2013/10/24 职场文书
编辑求职信样本
2013/12/16 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
光盘行动倡议书
2014/02/02 职场文书
职位说明书范文
2014/05/07 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
家长给老师的感谢信
2015/01/20 职场文书
HTML中实现音乐或视频自动播放案例详解
2022/05/30 HTML / CSS
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript