uniapp自定义按钮/文字页面任意位置拖动(movable-area)

本文介绍如何在uni-app中创建一个可自定义拖动的按钮或文字,该元素可在页面任意位置移动,且不会遮挡并影响其他页面元素的点击事件。通过设置`movable-area`的初始坐标,并结合CSS样式,实现了一个灵活的拖动组件。
摘要由CSDN通过智能技术生成

自定义标签当前页面随意拖动(不遮挡页面的点击事件)

直接上代码:

1.页面结构:

<template>
    <movable-area class="movable-area">
        <movable-view class="movable-view" :x="x" :y="y" direction="all">
            <text>去安排</text>
        </movable-view>
    </movable-area>
</template>

2.data变量:

	export default {
        data() {
			return {
				x: 320,
				y: 520,
			}
		},
    }

3.css样式:

  .movable-area {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		height: 100%;
		pointer-events: none;
	
		.movable-view {
			pointer-event
A: 可以通过以下步骤在 nvue 页面中利用 movable-area 组件实现滑块校验: 1. 在 nvue 页面中引入 movable-areamovable-view 组件,并确定滑块需要的宽度和高度。 2. 在 template 中添加一个 movable-area 组件,设置宽度和高度,同时设置 data-x 和 data-y 作为滑块的位置。 3. 在 movable-area 组件中添加一个 movable-view 组件,这个组件就是滑块,设置宽度和高度,同时设置 eventchange 事件,用于拖动滑块时获取滑块的位置。 4. 在 eventchange 事件中获取滑块的位置,判断是否滑过规定的位置来判断校验是否通过,如果通过则触发相应的事件。 下面是一个示例代码: ``` <template> <view> <movable-area style="width: 300rpx; height: 100rpx; background-color: #eee;"> <movable-view style="width: 50rpx; height: 50rpx; background-color: #1aad19;" :data-x="x" :data-y="y" @change="onSliderChange" ></movable-view> </movable-area> </view> </template> <script> export default { data() { return { x: 0, y: 0, sliderWidth: 50, // 滑块的宽度 offset: 50, // 滑块需要滑过的距离 } }, methods: { onSliderChange(e) { const x = e.detail.x if (x >= this.offset) { // 校验通过 console.log('验证通过') // 触发相应的事件 } }, }, } </script> ``` 以上代码中,我们在 movable-view 组件上绑定了一个 change 事件,用于在滑动过程中获取滑块的位置。这个位置使用了 data-x 和 data-y 绑定,它们是可响应的数据,可以随时更改滑块的位置。在 onSliderChange 方法中,我们获取到了滑块的位置,判断是否滑过了规定的距离,如果通过则触发相应的事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高桥留

打赏更新更快!质量更好!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值