uniapp中如何绝对定位元素拖拽不会导致父页面滚动?
网友回复
在 UniApp 中,要实现绝对定位元素拖拽时不导致父页面滚动,可以通过阻止触摸事件的默认行为来实现。以下是详细的实现步骤和示例代码:
实现思路绝对定位元素:将需要拖拽的元素设置为绝对定位,方便在页面中自由移动。绑定触摸事件:为元素绑定 touchstart、touchmove 和 touchend 事件,用于处理拖拽操作。阻止默认行为:在 touchmove 事件中,调用 event.preventDefault() 方法阻止页面滚动。示例代码页面结构(.vue 文件)<template> <view class="container"> <!-- 父页面内容 --> <view class="parent-content"> <view v-for="i in 50" :key="i">{{ i }}</view> </view> <!-- 可拖拽的绝对定位元素 --> <view class="draggable-element" :style="{ left: dragX + 'px', top: dragY + 'px' }" @touchstart="onTouchStart" @touchmove="onTouchMove" @touchend="onTouchEnd" > 可拖拽元素 </view> </view> </template> <script> export default { data() { return { startX: 0, startY: 0, dragX: 100, // 初始 x 坐标 dragY: 100, // 初始 y 坐标...
点击查看剩余70%