小程序可手指拖拽移动的小球

<view class="suspend-btn" bindtap='addCollect' wx:if="{{write[0]+write[1] > 0}}" bindtouchmove="touchmove" catch:touchmove style="left:{{write[0]}}px;top:{{write[1]}}px;">

</view>

==========
/ 悬浮按钮样式 /
.suspend-btn {
position: absolute;
z-index: 99;
width: 80rpx;
height: 80rpx;
border-radius: 50%;
background-color: red;
}

======

Page({
data: {

 // 拖拽参数
 writePosition: [80, 90], //默认定位参数
 writesize: [0, 0],// X Y 定位
 window: [0, 0], //屏幕尺寸
 write: [0, 0], //定位参数
 scrolltop: 0,//据顶部距离
},

onLoad: function (options) {

// 在页面中定义插屏广告
let that = this;
that.getSysdata();
},

//计算默认定位值
getSysdata: function () {
var that = this;
wx.getSystemInfo({

success: function (e) {
  that.data.window = [e.windowWidth, e.windowHeight];
  var write = [];
  write[0] = that.data.window[0] * that.data.writePosition[0] / 100;
  write[1] = that.data.window[1] * that.data.writePosition[1] / 100;
  console.log(write,45)
  that.setData({
    write: write
  }, function () {
    // 获取元素宽高
    wx.createSelectorQuery().select('.collectBox').boundingClientRect(function (res) {
      console.log(res.width)
      that.data.writesize = [res.width, res.height];
    }).exec();
  })
},
fail: function (e) {
  console.log(e)
}
});
},
//开始拖拽
touchmove: function (e) {
var that = this;
var position = [e.touches[0].pageX - that.data.writesize[0] / 2, e.touches[0].pageY - that.data.writesize[1] / 2 - this.data.scrolltop];
that.setData({

write: position
});
},
onPageScroll(e) {
this.data.scrolltop = e.scrollTop;
},
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容