小程序悬浮窗(拖动)

wxml:

wxjs:
Component({
/**

  • 组件的属性列表
    */
    properties: {
    windowHeight: {
    type: String,//类型
    value: ‘default value’//默认值
    },
    windowWidth: {
    type: String,//类型
    value: ‘default value’//默认值
    },
    ballRight: {
    type: Number,//类型
    value: ‘default value’//默认值
    },
    ballBottom: {
    type: Number,//类型
    value: ‘default value’//默认值
    }
    },

/**

  • 组件的初始数据
    */
    data: {
productId:''

},

/**

  • 组件的方法列表
    */
    methods: {
// 按钮跳转
backHome(e) {
  let that = this;
  let isAuth = wx.getStorageSync('isAuth');
  if (isAuth != 2) {
    wx.reLaunch({
      url: '/pages/index/index'
    });
    return false
  }
},
// 按钮拖动
viewTouchMove(e){
  var touchs = e.touches[0];
  var pageX = touchs.clientX;
  var pageY = touchs.clientY;
  //防止坐标越界,view宽高的一般 
  if (pageX < 30) return;
  if (pageX > this.data.windowWidth - 30) return;
  if (this.data.windowHeight - pageY <= 30) return;
  if (pageY <= 30) return;

  //这里用right和bottom.所以需要将pageX pageY转换 
  var x = this.data.windowWidth - pageX - 30;
  var y = this.data.windowHeight - pageY - 30;
  this.setData({
    ballBottom: y,
    ballRight: x
  }); 
  this.triggerEvent('myevent', { ballRight:x, ballBottom: y });
},

}
})
父页面:
onload 里面初始化获取系统宽高,拖动位置有差异;

你可能感兴趣的:(碰到的坑)