微信小程序实现拖拽 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 第二代身份证号码的验证机制代码
May 12 Javascript
JavaScript制作的可折叠弹出式菜单示例
Apr 04 Javascript
Vue.js原理分析之observer模块详解
Feb 17 Javascript
jQuery实现字符串全部替换的方法【推荐】
Mar 09 Javascript
Express框架之connect-flash详解
May 31 Javascript
node中使用es5/6以及支持性与性能对比
Aug 11 Javascript
webpack处理 css\less\sass 样式的方法
Aug 21 Javascript
vue2中使用less简易教程
Mar 27 Javascript
vue页面切换过渡transition效果
Oct 08 Javascript
vue实现的仿淘宝购物车功能详解
Jan 27 Javascript
vue-cli3项目展示本地Markdown文件的方法
Jun 07 Javascript
解读Vue组件注册方式
May 15 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与php MySQL 之间的关系
2009/07/17 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
jQuery 性能优化指南(2)
2009/05/21 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
欧洲当代手工玻璃和瓷器的领先品牌:LSA International
2018/06/03 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
母亲节演讲稿范文
2014/01/02 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
运动会闭幕词
2015/01/28 职场文书
单位接收证明格式
2015/06/18 职场文书
幼儿园小班教学反思
2016/03/03 职场文书
创业计划书介绍
2019/04/24 职场文书