微信小程序 实现拖拽事件监听实例详解


Posted in Javascript onNovember 16, 2016

微信小程序 拖拽监听功能:

        在软件开发或者 APP应用开发的时候,经常会遇到拖拽监听,最近自己学习微信小程序的知识,就想实现这样的拖拽效果,这里就记录下。

需要做个浮在scroll-view之上的button.尝试了一下.

上GIF:

微信小程序 实现拖拽事件监听实例详解

Android中也会有类似移动控件的操作.思路差不多.获取到位移的X Y 的变量,给控件设置坐标.

1.index.wxml

../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 () { 
[javascript] view plain copy
<span style="white-space:pre"> </span>//获取屏幕宽高 
  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代码(自写)
Aug 12 Javascript
JS判断客服QQ号在线还是离线状态的方法
Jan 13 Javascript
全面了解javascript三元运算符
Jun 27 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
Angular将填入表单的数据渲染到表格的方法
Sep 22 Javascript
vue2实现数据请求显示loading图
Nov 28 Javascript
es6数据变更同步到视图层的方法
Mar 04 Javascript
了解Javascript中函数作为对象的魅力
Jun 19 Javascript
Vue数字输入框组件的使用方法
Oct 19 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
Mar 06 Javascript
微信小程序实现搜索框功能及踩过的坑
Jun 19 Javascript
vue-router之解决addRoutes使用遇到的坑
Jul 19 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 #Javascript
JavaScript仿微博发布信息案例
Nov 16 #Javascript
使用Node.js给图片加水印的方法
Nov 15 #Javascript
Node.js批量给图片加水印的方法
Nov 15 #Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
Nov 15 #Javascript
AngularJS extend用法详解及实例代码
Nov 15 #Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 #Javascript
You might like
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
php &amp;&amp; 逻辑与运算符使用说明
2010/03/04 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
初识ThinkPHP控制器
2016/04/07 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
2011/08/23 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
JavaScript中的函数模式详解
2015/02/11 Javascript
js实现Select列表各项上移和下移的方法
2015/08/14 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
webpack实用小功能介绍
2018/01/02 Javascript
vue按需加载实例详解
2019/09/06 Javascript
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
python学习开发mock接口
2019/04/28 Python
Python3匿名函数lambda介绍与使用示例
2019/05/18 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
如何基于线程池提升request模块效率
2020/04/18 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
会计人员岗位职责
2014/03/19 职场文书
电力安全事故反思
2014/04/27 职场文书
纪录片信仰观后感
2015/06/08 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
使用CSS设置滚动条样式
2022/01/18 HTML / CSS