标签:clientX style const elementui px 弹框 dragDom document 拖拽
//鼠标拉伸弹窗 resizeEl.onmousedown = (e) => { // 记录初始x位置 const clientX = e.clientX; // 鼠标按下,计算当前元素距离可视区的距离 const disX = e.clientX - resizeEl.offsetLeft; const disY = e.clientY - resizeEl.offsetTop; document.onmousemove = function (e) { e.preventDefault(); // 移动时禁用默认事件 // 通过事件委托,计算移动的距离 const x = e.clientX - disX + (e.clientX - clientX);//这里 由于elementUI的dialog控制居中的,所以水平拉伸效果是双倍 const y = e.clientY - disY; //比较是否小于最小宽高 dragDom.style.width = x > minWidth ? `${x}px` : minWidth + 'px'; dragDom.style.height = y > minHeight ? `${y}px` : minHeight + 'px'; if(!hasSetBodyHight) { dragDom.querySelector('.el-dialog__body').style.height = 'calc(100% - '+dialogHeaderEl.offsetHeight+'px)'; hasSetBodyHight = true; } }; //拉伸结束 document.onmouseup = function (e) { document.onmousemove = null; document.onmouseup = null; }; } } }标签:clientX,style,const,elementui,px,弹框,dragDom,document,拖拽 来源: https://www.cnblogs.com/Mr-dongjuntao/p/16249371.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。