forked from aixan/RuoYi-Vue
		
	自定义可拖动弹窗宽度指令
This commit is contained in:
		
							
								
								
									
										31
									
								
								ruoyi-ui/src/directive/dialog/dragWidth.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								ruoyi-ui/src/directive/dialog/dragWidth.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| /** | ||||
| * v-dialogDragWidth 可拖动弹窗宽度 | ||||
| * Copyright (c) 2019 ruoyi | ||||
| */ | ||||
|  | ||||
| export default { | ||||
|     bind(el) { | ||||
|         const dragDom = el.querySelector('.el-dialog'); | ||||
|         const lineEl = document.createElement('div'); | ||||
|         lineEl.style = 'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;'; | ||||
|         lineEl.addEventListener('mousedown', | ||||
|             function (e) { | ||||
|                 // 鼠标按下,计算当前元素距离可视区的距离 | ||||
|                 const disX = e.clientX - el.offsetLeft; | ||||
|                 // 当前宽度 | ||||
|                 const curWidth = dragDom.offsetWidth; | ||||
|                 document.onmousemove = function (e) { | ||||
|                     e.preventDefault(); // 移动时禁用默认事件 | ||||
|                     // 通过事件委托,计算移动的距离 | ||||
|                     const l = e.clientX - disX; | ||||
|                     dragDom.style.width = `${curWidth + l}px`; | ||||
|                 }; | ||||
|                 document.onmouseup = function (e) { | ||||
|                     document.onmousemove = null; | ||||
|                     document.onmouseup = null; | ||||
|                 }; | ||||
|             }, | ||||
|         ); | ||||
|         dragDom.appendChild(lineEl); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 RuoYi
					RuoYi