Browse Source

resize后重新绑定拖拽事件(2588)

zhangxc 5 years ago
parent
commit
7cb00e5003
1 changed files with 12 additions and 0 deletions
  1. 12 0
      src/utils/drag.js

+ 12 - 0
src/utils/drag.js

@@ -4,6 +4,7 @@
  */
 import $ from 'jquery';
 import {
+  windowEventHandler,
   getWindowInnerHeight,
   getWindowInnerWidth,
   getPageCoordinate
@@ -84,7 +85,9 @@ function handleUp(){
  * @param {拖动元素/清除拖动事件监听} type add:添加事件监听  del:移除事件监听
  * @param {展开元素id} addDom 
  */
+let timer 
 function dragBox(dragWrap,dragTop,type,addDom,img,free) {
+  clearTimeout(timer)
   let drag = $("#"+dragTop); //拖拽区域
   let wrap = $("#"+dragWrap); //被拖拽的元素
   width = getWindowInnerWidth(); 
@@ -109,6 +112,15 @@ function dragBox(dragWrap,dragTop,type,addDom,img,free) {
     })
     $(document).on('mousemove', handleMove)
     $(document).on('mouseup', handleUp)
+  
+    windowEventHandler('resize', ()=>{
+      clearTimeout(timer)
+      timer = setTimeout(()=>{
+        dragBox(dragWrap,dragTop,'del',addDom,img,free)
+        dragBox(dragWrap,dragTop,type,addDom,img,free)
+      }, 200)
+    });
+    
   }
 }