vue-drag-resize 可拖拽可縮放的標簽,如何管理多個拖拽元素之間的zIndex?操作上需要保持當前激活的組件是最上層,但是在總體上,又要確保其圖層管理的順序。


麻煩總是不斷出現,還好辦法總比困難多,

 

1.公司開發一款可視化編輯html網頁的多媒體編輯平台,牽扯到標簽元素的拖拽,縮放,我找了找方法發現原生技術實現起來代碼太多,麻煩,還好找到了一個vue組件,可以實現元素的拖拽,縮放,記錄位置等等,如下:

 

2.組件好用,有各種事件,參數,屬性可以使用,但是也遇到了一個麻煩事,各個標簽之間,如何管理多個拖拽元素之間的zIndex?拖拽過程中這是必定會遇到並且無法逃避的一個問題,操作上需要保持當前激活的組件是最上層,但是在總體上,又要確保其圖層管理的順序。維護zIndex,並且注意在刪除與置換層級的時候對應的數據修改。

 

3.試着采用:一個變量記錄點擊次數,借用點擊次數,每點擊一次就把當前標簽的z-index增大至點擊次數 對應的數字,這樣就能保證最后點擊那個標簽都會在最頂端,z-index都會最大,

 

4.但是事與願違,此組件點擊之后默認不能對屬性的修改立刻重現,需要點擊一下,再點一下,才可以達到要求

 

5.無形中大大降低了使用體驗

 

 

==========================================================================

 

解決:使用 @activated ="" 激活事件,加ref屬性(激活事件參數里找不到實例對象),在組件激活時找到對應實例對象,更改標簽zindex。搭配@clicked=""點擊事件同時使用,即可

 
js:
  點擊事件(e) {  
      this.點擊次數 += 1;  
      e.target.style.zIndex = this.點擊次數
    },
    激活事件(item) {   
      this.點擊次數 += 1;  
      this.$refs[item][0].$el.style.zIndex = this.點擊次數
    },
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM