Vue3中實現(xiàn)div拖拽功能
更新時間:2024年03月11日 10:15:28 作者:zhige@
這篇文章主要介紹了Vue3中實現(xiàn)div拖拽功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
1.創(chuàng)建一個div
<template>
<div class="draggable" :style="{ left: `${x}px`, top: `${y}px` }" @mousedown="startDrag">
拖拽我
</div>
</template>2.typescript代碼
<script setup>
import { ref } from 'vue';
// 用于存儲元素X和Y位置的響應性引用
const x = ref(500);
const y = ref(500);
// 是否正在拖動的標志
const isDragging = ref(false);
// 開始拖動的函數(shù)
const startDrag = (event) => {
// 記錄初始鼠標位置
const initialMouseX = event.clientX;
const initialMouseY = event.clientY;
// 記錄初始元素位置
const initialX = x.value;
const initialY = y.value;
// 開始拖動,設置為true
isDragging.value = true;
// 當鼠標移動時執(zhí)行的函數(shù)
const dragging = (moveEvent) => {
// 只有在拖動時才執(zhí)行
if (isDragging.value) {
// 計算鼠標移動的距離
const deltaX = moveEvent.clientX - initialMouseX;
const deltaY = moveEvent.clientY - initialMouseY;
// 更新元素的位置
x.value = initialX + deltaX;
y.value = initialY + deltaY;
}
};
// 鼠標釋放時停止拖動的函數(shù)
const stopDrag = () => {
// 結束拖動,設置為false
isDragging.value = false;
// 移除事件監(jiān)聽器
document.removeEventListener('mousemove', dragging);
document.removeEventListener('mouseup', stopDrag);
};
// 添加鼠標移動和釋放時的事件監(jiān)聽器
document.addEventListener('mousemove', dragging);
document.addEventListener('mouseup', stopDrag);
};
</script>3.CSS樣式
<style>
.draggable {
width: 550px;
height: 550px;
border: 1px solid #000;
position: fixed;
cursor: grab; /* 設置鼠標樣式為可抓取狀態(tài) */
z-index: 100;
}
</style>到此這篇關于Vue3中實現(xiàn)div拖拽功能的文章就介紹到這了,更多相關Vue3 div拖拽內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue2+springsecurity權限系統(tǒng)的實現(xiàn)
本文主要介紹了vue2+springsecurity權限系統(tǒng)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05
vscode中prettier和eslint換行縮進沖突的問題
這篇文章主要介紹了vscode中prettier和eslint換行縮進沖突的問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
vscode中的vue項目報錯Property ‘xxx‘ does not exist on type ‘Combin
這篇文章主要介紹了vscode中的vue項目報錯Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09

