欢迎光临,了解微信小程序开发,就上易用通!

微信小程序学习点滴《十四》:拖拽 image 触目事件监听

发布:2018-01-29 09:57浏览: 来源:网络 作者:cola

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

上GIF:

微信小程序学习点滴《十四》:拖拽 image 触目事件监听(图1)

 

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

 

1.index.wxml

 

[html] view plain copy
 
  1. <image class="image-style" src="../../images/gundong.png" bindtap="ballClickEvent" style="bottom:{{ballBottom}}px;right:{{ballRight}}px;" bindtouchmove="ballMoveEvent">   
  2. </image>  

 

简单的设置一张图片,添加触摸事件监听.点击事件监听.根据触摸事件获取X Y位移,设置为image的位置

 

2.index.js

 

[javascript] view plain copy

//index.js  
//获取应用实例  
var app = getApp()  
Page({  
  data: {  
    ballBottom: 240,  
    ballRight: 120,  
    screenHeight: 0,  
    screenWidth: 0,  
  },  
  onLoad: function () {  
[javascript] view plain copy
 
  1. <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) 
[javascript] view plain copy
 
//防止坐标越界,view宽高的一般  
    if (pageX < 30) return;  
    if (pageX > this.data.screenWidth - 30) return;  
    if (this.data.screenHeight - pageY <= 30) return;  
    if (pageY <= 30) return;  
[javascript] view plain copy
 
//这里用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  
    });  
  },  
[javascript] view plain copy
 
//点击事件  
  ballClickEvent: function () {  
    console.log('点击了....')  
  }  
})  

 

 

3.index.wxss

这里需要设置z-index

 

[css] view plain copy

.image-style{  
  position: absolute;  
  bottom: 240px;  
  right: 100px;  
  width: 60px;  
  height: 60px;  
  z-index: 100;  
}  






免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。