微信小程序实现拖拽 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 相关文章推荐
Javascript异步编程的4种方法让你写出更出色的程序
Jan 17 Javascript
认识Knockout及如何使用Knockout绑定上下文
Dec 25 Javascript
js+html5实现canvas绘制网页时钟的方法
May 21 Javascript
JS经典正则表达式笔试题汇总
Dec 15 Javascript
基于Angular.js实现的触摸滑动动画实例代码
Feb 19 Javascript
JAVA中截取字符串substring用法详解
Apr 14 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
Nov 22 Javascript
js实现json数组分组合并操作示例
Feb 12 Javascript
深入理解Vue keep-alive及实践总结
Aug 21 Javascript
bootstrap实现嵌套模态框的实例代码
Jan 10 Javascript
vue-resourc发起异步请求的方法
Feb 11 Javascript
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
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中var_export与var_dump的区别分析
2010/08/21 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
2007/02/22 Javascript
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
图片onload事件触发问题解决方法
2011/07/31 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
使用vue实现一个电子签名组件的示例代码
2020/01/06 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
python基于mysql实现的简单队列以及跨进程锁实例详解
2014/07/07 Python
python链接Oracle数据库的方法
2015/06/28 Python
python实现获取Ip归属地等信息
2016/08/27 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
如何使用Python 打印各种三角形
2019/06/28 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
为什么说python更适合树莓派编程
2020/07/20 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
什么是测试驱动开发(TDD)
2012/02/15 面试题
应用电子专业学生的自我评价
2013/10/16 职场文书
年度考核自我评价
2014/01/25 职场文书
高中生的自我评价
2014/03/04 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
学校党员对照检查材料
2014/08/28 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL