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


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 相关文章推荐
更正确的asp冒泡排序
May 24 Javascript
js 金额文本框实现代码
Feb 14 Javascript
AngularJS语法详解(续)
Jan 23 Javascript
使用纯javascript实现放大镜效果
Mar 18 Javascript
深入学习JavaScript中的原型prototype
Aug 13 Javascript
jquery采用oop模式class类的使用示例
Jan 22 Javascript
基于原生js淡入淡出函数封装(兼容IE)
Oct 20 Javascript
AngularJS表单提交实例详解
Feb 18 Javascript
Vue实现用户自定义字段显示数据的方法
Aug 28 Javascript
vue计算属性computed的使用方法示例
Mar 13 Javascript
vue点击按钮动态创建与删除组件功能
Dec 29 Javascript
如何理解Vue简单状态管理之store模式
May 15 Vue.js
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 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
php简单获取复选框值的方法
2016/05/11 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
node.js中的http.response.write方法使用说明
2014/12/14 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
谈谈JavaScript中的函数
2020/09/08 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
python字符串str和字节数组相互转化方法
2017/03/18 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
python学习入门细节知识点
2018/03/29 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
python将音频进行变速的操作方法
2020/04/08 Python
美国台面电器和厨具品牌:KitchenAid
2019/04/12 全球购物
总裁岗位职责
2013/12/04 职场文书
创建文明学校实施方案
2014/03/11 职场文书
企业安全标语
2014/06/07 职场文书
基层工作经验证明样本
2014/11/16 职场文书
2014年科室工作总结范文
2014/12/19 职场文书
捐书活动倡议书
2015/04/27 职场文书
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL