小程序悬浮按钮可拖动自动靠边

wxml代码

// <!-- x,y初始化按钮位置 -->
<movable-area class="movable-area">

 <movable-view x="{{x}}" y="{{y}}"  animation="{{false}}" class="movable-view" direction='all'   catchtap="getPrompt" bindtouchend="touchendFun" bindchange="movableChange">
    <image style="width: 160rpx;height: 160rpx;"  fit="cover" mode="scaleToFill"></image>
 </movable-view>
</movable-area>

wxss代码

 .movable-area{
    pointer-events:none;
    /* 这个属性设置为none,让所有事件穿透过去 */
    z-index: 100;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
   }
   .movable-view{
    pointer-events:auto;
    /* 重设为auto,覆盖父属性设置  宽高要跟图片大小一致*/
    height: 160rpx;
    width: 160rpx;
    /* background: red; */
   }

js代码

data:{
    mx: 0,
    my:0,
    x:"600px",
    y: ""
    }
//方法
  //拖动事件
  movableChange(event){
    this.setData({
        mx : event.detail.x,
        my : event.detail.y
    })
  },
  //拖动失去事件
  touchendFun(event){
      //获取屏幕宽度,自动靠边
    if(app.globalData.screenWidth / 2 > this.data.mx+40){
        this.setData({
            x : `0px`,
            y : `${this.data.my }px`
        })
    }else{
        this.setData({
            x : `${app.globalData.screenWidth }px`,
            y : `${this.data.my  }px`
        })
    }
  },

获取设备屏幕宽度方法

 //获取当前设备信息
     wx.getSystemInfo({
      success: res => {
          console.log(res)
        this.globalData.screenWidth = res.screenWidth;
        this.globalData.screenHeight = res.screenHeight;
      },
      fail(err) {
        console.log(err);
      }
    })
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值