实现ElementUI的Dialog弹窗可以拖拽移动

实现ElementUI的Dialog弹窗可以拖拽移动

ElementUI的Dialog 对话框默认的位置是在屏幕居中靠上方并且不允许拖拽移动的(如下图所示)

在这里插入图片描述

我么可以使用vue的自定义指令,绑定到需要拖拽移动的el-dialog组件上,在自定义指令中处理弹框拖拽。

(最终实现结果如下图所示)
在这里插入图片描述

实现步骤

1.创建自定义指令

/directive/el-dragDialog/index.js

import drag from './drag'

const install = function(Vue) {
   
  Vue.directive('el-drag-dialog', drag)
}

if (window.Vue) {
   
  window['el-drag-dialog'] = drag
  Vue.use(install);
}

drag.install = install
export default drag

/directive/el-dragDialog/drag.js

export default{
   
  bind(el, binding, vnode) {
   
    const dialogHeaderEl = el.querySelector('.el-dialog__header')
    const dragDom = el.querySelector('.el-dialog')
    dialogHeaderEl.style.cssText 
  • 22
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
ElementUI是一套基于Vue.js的组件库,其中包含了组件。以下是实现的步骤: 1. 安装ElementUI 使用npm或yarn安装ElementUI: ``` npm install element-ui ``` 或者 ``` yarn add element-ui ``` 2. 引入ElementUI 在Vue项目的main.js文件中,引入ElementUI: ```javascript import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 3. 使用ElDialog组件 在需要的组件中,使用ElDialog组件: ```html <template> <div> <el-button @click="openDialog">打开</el-button> <el-dialog :visible.sync="dialogVisible"> <span>这是一个</span> </el-dialog> </div> </template> <script> export default { data() { return { dialogVisible: false } }, methods: { openDialog() { this.dialogVisible = true } } } </script> ``` 在上面的代码中,ElDialog组件的visible属性控制的显示与隐藏,使用.sync修饰符可以实现双向绑定。方法openDialog()用来打开,即将dialogVisible属性设为true。 4. 设置属性 ElDialog组件还有许多属性可以设置,例如的标题、大小、是否可以等。以下是一些常用的属性: ```html <el-dialog title="标题" :visible.sync="dialogVisible" width="50%" :before-close="handleClose" :close-on-click-modal="false" > <span>这是一个</span> </el-dialog> ``` 其中,title属性设置的标题,width属性设置的宽度,before-close属性设置关闭前的回调函数,close-on-click-modal属性设置是否点击遮罩层关闭。 5. 自定义内容 ElDialog组件还可以自定义的内容,例如使用插槽来替换默认的底部按钮: ```html <el-dialog title="标题" :visible.sync="dialogVisible" > <span>这是一个</span> <template #footer> <el-button @click="dialogVisible = false">关闭</el-button> <el-button type="primary" @click="submitForm">提交</el-button> </template> </el-dialog> ``` 在上面的代码中,使用了插槽#footer来替换默认的底部按钮。其中,@click事件绑定了关闭和提交表单的方法。 至此,就完成了使用ElementUI实现的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值