微信小程序(可拖动悬浮按钮)

整体效果图

在这里插入图片描述

介绍

视图组件movable-view,它需要配合movable-area来一起使用。简单来说,它就是一个支持在指定区域内可以拖动内容的容器。
微信API地址: https://developers.weixin.qq.com/miniprogram/dev/component/movable-view.html

案例代码:

<movable-area style="pointer-events: none;height: 100%;width: 100%;position:absolute;left:0px;top:0px;background: red;">
  	<movable-view direction="all" style="pointer-events: auto;height: 50px; width: 50px; background: blue;">
		<image src='../images/icon_component_HL.png' class="imgStyle"></image>
	</movable-view>
</movable-area>

movable-area 不设置 background: red;  背景透明。

在这里插入图片描述

属性说明

movable-view的direction属性支持以下四个值:

  1. all - 任意方向拖动

  2. vertical - 纵向拖动

  3. horizontal - 横向拖动

  4. none - 不能拖动
    如果direction设置为最后这个none,则只能依靠设置x,y属性值来为它进行在movable-area中的定位:

     <movable-area style="height: 200px;width: 200px;background: red;">
     	  <movable-view direction="none" x="50" y="50" style="height: 50px; width: 50px; background: blue;">
     	  </movable-view>
     </movable-area>
    

蓝色的movable-view就显示在了(50,50)的位置上,不能拖动。

mavable-area 事件穿透(下方内容可点击)

说明: movable-area 范围设置全屏,导致下发页面不能触发点击事件。

movable-area 的style设置pointer-events: none
movableview的样式设置pointer-events: auto,
可以实现movable-area点击事件穿透,而浮动组件可点击拖拉。

### 微信小程序实现悬浮按钮拖拽功能 为了实现在微信小程序中的悬浮按钮拖拽功能,可以采用`movable-view`和`movable-area`控件。这些控件允许创建能够响应用户触碰并随之移动的界面元素。 #### 创建悬浮按钮及其行为逻辑 在页面WXML文件中定义一个可移动区域以及位于该区域内的一颗按钮: ```xml <view class="container"> <!-- 定义可移动范围 --> <movable-area style="position:absolute; top:0px; bottom:0px; left:0px; right:0px;"> <!-- 可移动视图, 即我们的悬浮按钮 --> <movable-view direction="all" damping="50" friction="20" out-of-bounds="{{true}}" inertia="{{true}}" x="{{buttonX}}" y="{{buttonY}}"> <button bindtap="openCustomerService">联系客服</button> </movable-view> </movable-area> </view> ``` 上述代码片段设置了悬浮按钮可以在整个屏幕范围内自由滑动,并指定了当点击按钮时触发`openCustomerService`函数[^1]。 #### 数据绑定与事件处理 接着,在对应的JS文件里初始化位置参数并编写相应的事件处理器: ```javascript Page({ data: { buttonX: 375 / 2 - 40, buttonY: 667 - 80 }, openCustomerService() { wx.openCustomerServiceChat({}); } }) ``` 这里设定了初始坐标使得悬浮按钮显示于屏幕底部中央偏上一点的位置;同时实现了打开在线客服聊天窗口的功能。 #### 添加样式美化 最后给CSS加上一些简单的样式让按钮看起来更美观些: ```css page{ height: 100%; } .container { width: 100vw; min-height: 100vh; position:relative; } button { border-radius: 50%; /* 圆形 */ padding: 1em; background-color:#ffcc00; color:white; font-size: larger; } ``` 以上就是完整的关于如何在一个微信小程序内设置一个支持拖拽操作的浮动按钮的方法说明[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值