微信小程序实现拖拽 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定时器实例详细分析
Oct 11 Javascript
支持移动端原生js轮播图
Feb 16 Javascript
原生js实现放大镜
Feb 20 Javascript
MUI实现上拉加载和下拉刷新效果
Jun 30 Javascript
javascript基本常用排序算法解析
Sep 27 Javascript
vue.js中父组件调用子组件的内部方法示例
Oct 22 Javascript
Vue单页面应用保证F5强刷不清空数据的解决方案
Jan 31 Javascript
详解angular2如何手动点击特定元素上的点击事件
Oct 16 Javascript
微信小程序云开发(数据库)详解
May 17 Javascript
Vue scoped及deep使用方法解析
Aug 01 Javascript
JS变量提升及函数提升实例解析
Sep 03 Javascript
原生JS实现拖拽效果
Dec 04 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中文乱码
2009/11/26 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
基于jquery异步传输json数据格式实例代码
2013/11/23 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
搭建pomelo 开发环境
2014/06/24 Javascript
JsRender for object语法简介
2014/10/31 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
动态设置form表单的action属性的值的简单方法
2016/05/25 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
13个最常用的Python深度学习库介绍
2017/10/28 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
Python类如何定义私有变量
2020/02/03 Python
如何写python的配置文件
2020/06/07 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
客户经理岗位职责
2013/12/08 职场文书
触摸春天教学反思
2014/02/03 职场文书
国际商务专业求职信
2014/07/15 职场文书
初三毕业评语
2014/12/26 职场文书
西安兵马俑导游词
2015/02/02 职场文书
教师求职自荐信范文
2015/03/04 职场文书
教师节倡议书2015
2015/04/27 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
java Nio使用NioSocket客户端与服务端交互实现方式
2021/06/15 Java/Android
CentOS MySql8 远程连接实战
2022/04/19 MySQL