微信小程序实现拖拽 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 相关文章推荐
js对象的比较
Feb 26 Javascript
理解JavaScript的prototype属性
Feb 11 Javascript
Javascript 加载和执行-性能提高篇
Dec 28 Javascript
jsPDF生成pdf后在网页展示实例
Jan 16 Javascript
node.js中的url.format方法使用说明
Dec 10 Javascript
jQuery实现移动 和 渐变特效的点击事件
Feb 26 Javascript
js闭包引起的事件注册问题介绍
Mar 29 Javascript
使用vux实现上拉刷新功能遇到的坑
Feb 08 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
Jul 25 Javascript
Vue动态获取width的方法
Aug 22 Javascript
JS根据json数组多个字段排序及json数组常用操作
Jun 06 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
May 13 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初学者(入门学习经验谈)
2010/10/12 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
解析jquery中的ajax缓存问题
2013/12/19 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
小程序视频列表中视频的播放与停止的示例代码
2018/07/20 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
Python实现二叉搜索树
2016/02/03 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
Python socket模块方法实现详解
2019/11/05 Python
python函数装饰器之带参数的函数和带参数的装饰器用法示例
2019/11/06 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
python是怎么被发明的
2020/06/15 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
data:image data url 文件转为Blob上传后端的方法
2019/07/16 HTML / CSS
Trip.com香港网站:Ctrip携程旗下,全球最大的网上旅游社之一
2016/08/01 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
error和exception有什么区别
2012/10/02 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
《哪吒闹海》教学反思
2014/02/28 职场文书
体育比赛口号
2014/06/09 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
白酒营销策划方案
2014/08/17 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
三潭印月的导游词
2015/02/12 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
2015年网络舆情工作总结
2015/07/24 职场文书