vue實現div可拖動位置也可改變盒子大小

2021-10-09 12:02:17 字數 740 閱讀 5919

以下是效果圖:實現了div盒子在固定區域的拖動,也可改變盒子的高度和寬度,當超出邊距後無法繼續改變大小

這裡說一下大致原理:拖動和改變大小是分開來操作的,接下來分別說一下

盒子拖動

這裡用到了js的三個滑鼠事件,分別是onmousedown(滑鼠按下)、onmousemove(滑鼠移動)以及onmouseup(滑鼠鬆開),大致流程就是滑鼠按下拖**標進行拖動時,動態獲取當前div的left和top再重新賦值給當前div的top、left值,當滑鼠鬆開再清除事件,至於固定在某個區域內拖動,在賦值的時候判斷當前top及left值是否超過限制區域的值,如果超過給最大值最小值

盒子改變大小

這裡用到的也是盒子拖動的三個事件,當滑鼠移入盒子左邊框觸發mousemove事件,動態計算盒子寬度重新賦值,滑鼠鬆開登出mousrmove事件,我將寬度和高度改變分別封裝了元件,用的時候直接呼叫就好

博主用的vue寫的,這裡展示的也是銅鼓vue書寫的,其他都是大同小異,知道原理就好

// index.vue

}

以下是改變大小的元件

改變高度的元件原理和寬度一樣,避免**重複就不上傳了

上面就是大致流程和原始碼。

可拖動DIV層

定義好div後,只要把div的id傳進去就能實現拖動效果 var obox document.getelementbyid divid 拖動層 var disx disy 0 var bdrag false 啟用拖動 obox.onmousedown function event 拖動開始 docu...

可拖動的DIV

在做web ui設計的時候,拖動某個html元素已經成為一種不能忽視的使用者介面模式,比較典型的應用例子就是dialog,乙個元素是怎麼實現拖動的呢?其實原理非常簡單,要想實現首先得了解幾個基本知識。絕對定位 只有把元素的position屬性設定為absolute並且或者fixed才可以實現拖動,預...

div可編輯 可拖動

可編輯設定contenteditable屬性可以讓div程式設計可編輯狀態 2 可拖動 move draggable 使用jquery ui的draggable可以讓div變成可拖動狀態,但是如果兩個屬性同時應用就會出現可編輯功能失效的狀況。可編輯var divtitle move divtitle...