vue实现element-ui对话框可拖拽功能
发布时间:2020-12-17 02:14:05 所属栏目:百科 来源:网络整理
导读:element-ui对话框可拖拽及边界处理 应业务需求,需要实现对话框可拖拽问题,应element-ui没有提供官方支持,于是便参考大神的文章,得出了适合业务需要的解决方案。很多大神给出的代码是没有解决边界问题的,但是不解决边界问题存在一个bug,拖到不可视区域
element-ui对话框可拖拽及边界处理应业务需求,需要实现对话框可拖拽问题,应element-ui没有提供官方支持,于是便参考大神的文章,得出了适合业务需要的解决方案。很多大神给出的代码是没有解决边界问题的,但是不解决边界问题存在一个bug,拖到不可视区域后边再也拖不回来了,不信你们可以试试。 在实现的功能的情况下,封装成了js文件,然后再main.js中引入后可全局使用。 还是上代码吧 功能实现代码directives.js代码如下: // v-dialogDrag: 弹窗拖拽属性
Vue.directive('dialogDrag',{ bind(el,binding,vnode,oldVnode) { const dialogHeaderEl = el.querySelector('.el-dialog__header'); const dragDom = el.querySelector('.el-dialog'); //dialogHeaderEl.style.cursor = 'move'; dialogHeaderEl.style.cssText += ';cursor:move;' dragDom.style.cssText += ';top:0px;'
} 在边界处理上,因为在我的项目中无法获取到body的高度(被这个折磨了好久),所以采取了获取可见区域高度,这里补充点知识 在main.js中引入 ue文件中使用: 在el-dialog标签中加入v-dialogDrag属性 具体使用便是这样,希望有人看到哈哈哈,当然主要还是想帮到大家。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |