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


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 相关文章推荐
javascript支持firefox,ie7页面布局拖拽效果代码
Dec 20 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
Nov 23 Javascript
jquery Mobile入门—多页面切换示例学习
Jan 08 Javascript
innerText和textContent对比及使用介绍
Feb 27 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
Apr 08 Javascript
jquery获取焦点和失去焦点事件代码
Apr 21 Javascript
javascript学习笔记(三)BOM和DOM详解
Sep 30 Javascript
Javacript中自定义的map.js  的方法
Nov 26 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
Mar 06 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
Aug 27 Javascript
vue实现整屏滚动切换
Jun 29 Javascript
手把手教你如何编译打包video.js
Dec 09 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
打造计数器DIY三步曲(上)
2006/10/09 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
2015/10/25 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
vue axios整合使用全攻略
2018/05/24 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
手把手教您实现react异步加载高阶组件
2020/04/07 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[36:17]DOTA2上海特级锦标赛 - VGL音乐会全集
2016/03/06 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python中os模块功能与用法详解
2020/02/26 Python
对python中list的五种查找方法说明
2020/07/13 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
澳大利亚汽车零部件、音响及配件超市:Automotive Superstore
2018/06/19 全球购物
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
计算机专业个人求职信范例
2013/09/23 职场文书
教育实习生的自我评价分享
2013/11/21 职场文书
公司薪酬管理制度
2014/01/31 职场文书
护理专业毕业生自荐书
2014/05/24 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android