js實現元素可拖拽方法

?業務需要:Vue+element plus實現對彈框進行拖拽,并可拖拽到顯示頁面的外面,而element提供的拖拽只能在當前頁面不可超出。所以手寫了拖拽方法。

實現效果

對元素進行拖拽

?拖拽方法
     function dragElement(ele) {ele.addEventListener("mousedown", function (e) {// 取消瀏覽器默認事件e.preventDefault();// 存儲鼠標位置var mouseX = e.clientX;var mouseY = e.clientY;// 存儲元素當前位置var initX = draggableElement.offsetLeft;var initY = draggableElement.offsetTop;// 添加鼠標移動事件監聽器document.addEventListener("mousemove", onMouseMove);// 添加鼠標抬起事件監聽器document.addEventListener("mouseup", onMouseUp);function onMouseMove(e) {// 計算鼠標移動的距離var deltaX = e.clientX - mouseX;var deltaY = e.clientY - mouseY;if (window.innerWidth - 20 > e.clientX && e.clientX > 20) {// 將元素移動到新的位置,這里的加上deltaX和deltaY是因為我們需要將元素移動到鼠標點擊位置的右邊和下邊draggableElement.style.left = initX + deltaX + "px";}if (window.innerHeight - 20 > e.clientY && e.clientY > 20) {draggableElement.style.top = initY + deltaY + "px";}}function onMouseUp() {// 移除鼠標移動和抬起事件監聽器document.removeEventListener("mousemove", onMouseMove);document.removeEventListener("mouseup", onMouseUp);}});}

對方法進行使用

<divid="box"style="width: 100px;height: 100px;background-color: brown;position: absolute;"
></div><script>const draggableElement = document.querySelector("#box");dragElement(draggableElement)
</script>

注意:綁定的元素一定要設置css樣式“position: absolute;”,父元素可設置“overflow: hidden”,防止出現滾動條。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213200.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213200.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213200.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL自學通之函數 :對數據的進一步處理

目錄 一、目標 二、匯總函數 COUNT SUM AVG MAX MIN VARIANCE STDDEV 三、日期/時間函數 ADD_MONTHS LAST_DAY MONTHS_BETWEEN NEW_TIME NEXT_DAY SYSDATE 四、數學函數 ABS CEIL 和FLOOR COS、 COSH 、SIN 、SINH、 TAN、 TANH EXP LN and LOG MOD POW…

【SpringBoot教程】SpringBoot 實現前后端分離的跨域訪問(Nginx)

作者簡介&#xff1a;大家好&#xff0c;我是擼代碼的羊駝&#xff0c;前阿里巴巴架構師&#xff0c;現某互聯網公司CTO 聯系v&#xff1a;sulny_ann&#xff08;17362204968&#xff09;&#xff0c;加我進群&#xff0c;大家一起學習&#xff0c;一起進步&#xff0c;一起對抗…

Mybatis之核心配置文件詳解、默認類型別名、Mybatis獲取參數值的兩種方式

學習的最大理由是想擺脫平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;遲一天就多一天平庸的困擾。各位小伙伴&#xff0c;如果您&#xff1a; 想系統/深入學習某技術知識點… 一個人摸索學習很難堅持&#xff0c;想組團高效學習… 想寫博客但無從下手&#xff0c;急需…

arm-none-eabi-gcc not find

解決辦法&#xff1a;安裝&#xff1a;gcc-arm-none-eabi sudo apt install gcc-arm-none-eabi; 如果上邊解決問題了就不用管了&#xff0c;如果解決不了&#xff0c;加上下面這句試試運氣&#xff1a; $ sudo apt-get install lsb-core看吧方正我是運氣還不錯&#xff0c;感…

leetcode周賽375 - 12 - 10

比賽地址 : 競賽 - 力扣 (LeetCode) t1 : 直接暴力即可 class Solution { public:int countTestedDevices(vector<int>& b) {int n b.size();int ans 0;for(int i0;i<n;i){if(b[i]>0){ans ;for(int ji1;j<n;j){b[j] max(b[j]-1,0);}}}return ans;} };…

SSL 數字證書的一些細節

參考&#xff1a;TLS/SSL 協議詳解(6) SSL 數字證書的一些細節1 證書驗證 地址&#xff1a;https://wonderful.blog.csdn.net/article/details/77867063 參考&#xff1a;TLS/SSL協議詳解 (7) SSL 數字證書的一些細節2 地址&#xff1a;https://wonderful.blog.csdn.net/articl…

Python學習筆記-類

1 定義類 類是函數的集合&#xff0c;class來定義類 pass并沒有實際含義&#xff0c;只是為了代碼能執行通過&#xff0c;不報錯而已&#xff0c;相當于在代碼種占一個位置&#xff0c;后續完善 類是對象的加工廠 2.創建對象 carCar()即是創建對象的過程 3、類的成員 3.1 實例…

福德植保無人機:綠色農業的新篇章

今天&#xff0c;我們榮幸地向您介紹福德植保無人機&#xff0c;一種改變傳統農業種植方式&#xff0c;引領綠色農業的新科技產品。福德植保無人機以其高效、環保、安全的特點&#xff0c;正逐漸成為植保行業的新寵。福德植保無人機是一種搭載了高性能發動機和精確噴灑系統的飛…

代碼隨想錄算法訓練營第四十六天 _ 動態規劃_背包問題總結。

學習目標&#xff1a; 動態規劃五部曲&#xff1a; ① 確定dp[i]的含義 ② 求遞推公式 ③ dp數組如何初始化 ④ 確定遍歷順序 ⑤ 打印遞歸數組 ---- 調試 引用自代碼隨想錄&#xff01; 本文大多數內容引用自代碼隨想錄 60天訓練營打卡計劃&#xff01; 學習內容&#xff1a; …

POJ - 2528 Mayor‘s posters

本題注意離散化的時候可能會出現區間串聯情況&#xff0c;比如 [1,10] [5,10] [1,4] 和 [1,10] [6,10] [1,4] 直接離散化的話兩者一樣&#xff0c;但是實際上是不一樣的 解決辦法是你在相鄰的差不是1的數對中再插一個數就好了 離線區間染色 查詢根節點 #include<iostrea…

ASPICE-汽車軟件開發能力評級

Automotive SPICE&#xff08;簡稱A-SPICE 或 ASPICE&#xff09;&#xff0c;全稱是“Automotive Software Process Improvement and Capacity dEtermination”&#xff0c;即“汽車軟件過程改進及能力評定”模型框架。 常被用于評估一家汽車軟件供應商的軟件開發能力&#x…

數組|73. 矩陣置零 48. 旋轉圖像

73. 矩陣置零 **題目:**給定一個 m x n 的矩陣&#xff0c;如果一個元素為 0 &#xff0c;則將其所在行和列的所有元素都設為 0 。請使用 原地 算法。 題目鏈接&#xff1a;矩陣置零 class Solution {public void setZeroes(int[][] matrix) {Stack<int[]> mapofzerone…

【Python必做100題】之第三題(找出100以內的奇數并打印)

思路&#xff1a; 1、定義一個空列表來存儲所有的奇數 2、判斷是奇數就追加到列表的末尾 3、打印所有的奇數 代碼如下&#xff1a; list [ ] #定義一個列表來存儲所有的奇數 for i in range (1,100):if i % 2 ! 0: #判斷是否為奇數list.append(i) #追加到列表的末尾 prin…

使用draw.io如何讓矩形單個邊框有顏色其余邊框為空白?

方法步驟: 第一步&#xff1a;用戶打開Draw.io軟件&#xff0c;并來到流程圖的編輯頁面上&#xff1b; 第二步&#xff1a;接著在左側的圖形庫中點擊矩形選項&#xff0c;成功將其添加到流程圖的繪制頁面上&#xff1b; 第三步&#xff1a;這時用戶點擊矩形并在右側窗口中點…

C++ //習題2.3 寫出以下程序運行結果。請先閱讀程序,分析應輸出的結果,然后上機驗證。

C程序設計 &#xff08;第三版&#xff09; 譚浩強 習題2.3 習題2.3 寫出以下程序運行結果。請先閱讀程序&#xff0c;分析應輸出的結果&#xff0c;然后上機驗證。 #include <iostream> using namespace std;int main(){char c1 a, c2 b, c3 c, c4 \101, c5 \116…

DL Homework 10

習題6-1P 推導RNN反向傳播算法BPTT. 習題6-2 推導公式(6.40)和公式(6.41)中的梯度 習題6-3 當使用公式(6.50)作為循環神經網絡的狀態更新公式時&#xff0c; 分析其可能存在梯度爆炸的原因并給出解決方法&#xff0e; 當然&#xff0c;因為我數學比較菜&#xff0c;我看了好半…

Vue之數據綁定

在我們Vue當中有兩種數據綁定的方法 1.單向綁定 2.雙向綁定 讓我為大家介紹一下吧&#xff01; 1、單向綁定(v-bind) 數據只能從data流向頁面 舉個例子&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

BASH中export使用:命令行中傳入變量

可以看到通過export address/project這句話 定義了一個變量address,數值為/project。

運維06:監控

監控生命周期 1.服務器上架到機柜2.基礎設施監控 服務器溫度&#xff0c;風扇轉速 ipmitool命令&#xff0c;只能用在物理機上 存儲的監控&#xff08;df, fdisk, iotop&#xff09; cpu&#xff08;lscpu, uptime, top, htop, glances&#xff09; 內存情況&#xff08;free&…

MVC Gantt Wrapper:RadiantQ jQuery

The RadiantQ jQuery Gantt Package includes fully functional native MVC Wrappers that let you declaratively and seamlessly configure the Gantt component within your aspx or cshtm pages just like any other MVC extensions. 如果您還沒有準備好轉向完全基于客戶端…