微信小程序实现拖拽 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 相关文章推荐
DWR Ext 加载数据
Mar 22 Javascript
jQuery validate 中文API 附validate.js中文api手册
Jul 31 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
Jun 17 Javascript
Javascript闭包用法实例分析
Jan 23 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
Feb 08 Javascript
使用grunt合并压缩js和css文件的方法
Mar 02 Javascript
JS闭包原理与应用经典示例
Dec 20 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
Jul 23 Javascript
scrapyd schedule.json setting 传入多个值问题
Aug 07 Javascript
H5 js点击按钮复制文本到粘贴板
Nov 19 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
Jan 18 Javascript
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 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
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
php实现无限级分类实现代码(递归方法)
2011/01/01 PHP
PHP中Array相关函数简介
2016/07/03 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
js form action动态修改方法
2008/11/04 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
JavaScript函数定义方法实例详解
2019/03/05 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
详解JavaScript作用域 闭包
2020/07/29 Javascript
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
Python修改MP3文件的方法
2015/06/15 Python
python在非root权限下的安装方法
2018/01/23 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
python微信撤回监测代码
2019/04/29 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
python中class的定义及使用教程
2019/09/18 Python
在Django中实现添加user到group并查看
2019/11/18 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
怎样自定义一个异常类
2016/09/27 面试题
护士自我鉴定
2013/10/23 职场文书
中学教师自我鉴定
2014/02/07 职场文书
化妆品促销方案
2014/02/24 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
速龙x4-860k处理器相当于i几
2022/04/20 数码科技