微信小程序实现拖拽 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 相关文章推荐
摘自启点的main.js
Apr 20 Javascript
JQuery 表单中textarea字数限制实现代码
Dec 07 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
Mar 02 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
Sep 21 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
Sep 26 Javascript
喜大普奔!jQuery发布 3.0 最终版
Jun 12 Javascript
Vue2.0权限树组件实现代码
Aug 29 Javascript
浅谈Express异步进化史
Sep 09 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
Oct 25 Javascript
vue 搭建后台系统模块化开发详解
May 01 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
Oct 26 Javascript
vue+django实现下载文件的示例
Mar 24 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 print类函数使用总结
2010/06/25 PHP
分享一个超好用的php header下载函数
2014/01/31 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
JS实现的简单下拉框联动功能示例
2018/05/11 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
深入解析Python中的变量和赋值运算符
2015/10/12 Python
python一键升级所有pip package的方法
2017/01/16 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
Python递归函数实例讲解
2019/02/27 Python
Python3爬楼梯算法示例
2019/03/04 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
linux面试题参考答案(7)
2014/07/24 面试题
百度JavaScript笔试题
2015/01/15 面试题
毕业生求职自荐书范文
2014/03/27 职场文书
单位未婚证明范本
2014/11/25 职场文书
小学班主任事迹材料
2014/12/17 职场文书
投标单位介绍信
2015/05/05 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers