el-dialog实现拖拽功能示例代码

news2024/11/17 20:31:19

element UI中dialog组件经常会用到,如果能让其任意拖拽放到不同的位置就更好了,实现方法如下:在这里插入图片描述

dialogDraggable.js代码:

import Vue from 'vue'  
// 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' 
 
    // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null); 
    const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null) 
 
    dialogHeaderEl.onmousedown = (e) => { 
      // 鼠标按下,计算当前元素距离可视区的距离 
      const disX = e.clientX - dialogHeaderEl.offsetLeft 
      const disY = e.clientY - dialogHeaderEl.offsetTop 
 
      // 获取到的值带px 正则匹配替换 
      let styL, styT 
 
      // 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px 
      if (sty.left.includes('%')) { 
        styL = +document.body.clientWidth * (+sty.left.replace(/%/g, '') / 100) 
        styT = +document.body.clientHeight * (+sty.top.replace(/%/g, '') / 100) 
      } else { 
        styL = +sty.left.replace(/px/g, '') 
        styT = +sty.top.replace(/px/g, '') 
      } 
 
      document.onmousemove = function(e) { 
        // 通过事件委托,计算移动的距离 
        const l = e.clientX - disX 
        const t = e.clientY - disY 
 
        // 移动当前元素 
        dragDom.style.left = `${l + styL}px` 
        dragDom.style.top = `${t + styT}px` 
 
        // 将此时的位置传出去 
        // binding.value({x:e.pageX,y:e.pageY}) 
      } 
 
      document.onmouseup = function(e) { 
        document.onmousemove = null 
        document.onmouseup = null 
      } 
    } 
  } 
}) 

main.js 引用:

import ‘@/assets/dialogDraggable.js’

模块中引用

< el-dialog v-dialogDrag></ el-dialog>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/125524.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【再学Tensorflow2】TensorFlow2的层次结构

TensorFlow2的层次结构Tensorflow的层次结构Tensorflow的低阶API示例线性回归模型准备数据定义模型训练模型DNN二分类模型准备数据定义模型训练模型Tensorflow的中阶API示例线性回归模型DNN二分类模型Tensorflow的高阶API示例线性回归模型定义模型训练模型DNN二分类模型定义模型…

微信小程序开发实战10_1 小程序支付业务介绍

移动支付已成大多数消费者日常使用的支付方式之一。移动支付拥有操作简单方便、无需带现金或银行卡&#xff0c;不用找零&#xff0c;目前超过四分之三的用户都在使用移动支付。小程序应用作为一个广泛使用的移动应用&#xff0c;自然也不会放弃移动支付这个大的蛋糕。本章将介…

opencv文件介绍

build&#xff1a;存放.h.hpp.lib文件 bin .dll etc&#xff1a;存放训练好的分类器&#xff0c;用于人脸识别 include&#xff1a;所有的头文件 opencv2 • calib3d&#xff1a;相机校准、姿态估计和三维重建 • core&#xff1a;核心功能模块 • dnn&#xff1a;深度学习模块…

docker(6):Docker网络

目录docker网络介绍docker网络模式常用命令docker网络原理自定义网络实战&#xff1a;redis主从部署docker网络介绍 实际只要我们启动docker&#xff0c;那么主机上就会产生一个名字为docker0的虚拟网桥。它在内核层连通了其他的物理或虚拟网卡&#xff0c;这就将所有容器和本…

【Apifox】Apifox导入knife4j文档

文章目录手动导入自动导入手动导入 在浏览器中打开knife4j文档地址&#xff0c;并按F12打开控制台&#xff1a; 复制api-docs这个接口的请求地址。打开Apifox >> 项目设置 >> 导入数据&#xff08;手动导入&#xff09; >> URL导入 >> 把接口的请求地…

蔚来汽车李斌与黑客的数据战争!

‍‍数据智能产业创新服务媒体——聚焦数智 改变商业全面拥抱数字化的浪潮早已袭来&#xff0c;但数据的安全性也成为各行各业关注的焦点。近日&#xff0c;蔚来汽车用户数据遭泄露引发热议。针对此次事件&#xff0c;蔚来先后由其官方、创始人李斌及相关负责人卢龙三次致歉&a…

从数据分析,看公司员工流失率分析报告

一、概述&#xff1a; 1、员工离职和员工流失率的概念&#xff1a; 员工离职&#xff1a;员工被辞退及辞职、不续签的情况 员工流失率&#xff08;离职率&#xff09;&#xff1a;公司离职的员工人数/&#xff08;入职人数最初原有人数&#xff09;*100% 例如&#xff1a;月…

Spring Cloud 介绍及负载均衡Ribbon、服务容错Hystrix 组件使用详解

Spring Cloud 概述 官网 简介 Spring Cloud是一个基于 Spring Boot实现的微服务架构开发框架。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Clou…

linux 生成火焰图

1. 火焰图简介 火焰图&#xff08;flame graph&#xff09;是性能分析的利器&#xff0c;通过它可以快速定位性能瓶颈点。 perf 命令&#xff08;performance 的缩写&#xff09;是 Linux 系统原生提供的性能分析工具&#xff0c;会返回 CPU 正在执行的函数名以及调用栈&#…

前瞻 2023年加密行业会更难吗?欧科云链研究院“七大趋势预测”

回望2022&#xff0c;加密行业遭遇了种种不可控因素而导致的艰难险阻&#xff0c;也在变革与发展中孕育着生机与活力。 这一年&#xff0c;我们亲眼目睹了Luna暴雷&#xff0c;三箭资本、FTX这些曾经被认为“大而不倒”的机构接连倒下&#xff0c;市场信心严重受挫&#xff1b;…

量子计算(十八):量子计算机

文章目录 量子计算机 一、量子计算机整体架构 1、量子计算的定位&#xff1a;异构计算 2、量子程序代码构成&#xff1a;宿主代码设备代码 二、量子程序架构&#xff08;设备代码的架构&#xff09; 1、量子高级语言 2、量子汇编语言的编译原则 3、不可直接执行的量子比…

当产业互联网时代来临,显著的特点就在于互联网技术不再是主导

事实上&#xff0c;以往&#xff0c;我们所经历的那个互联网玩家频出的年代&#xff0c;其实就是一个以互联网技术为主导的年代。在那样一个年代里&#xff0c;互联网技术几乎是解决一切痛点和难题的万能解药&#xff0c;几乎是破解一切行业痛点和难题的杀手锏。任何一个行业&a…

特斯拉超级充电突破1万桩 充电比加油更方便

12月26日&#xff0c;特斯拉中国大陆第1万个超级充电桩落户上海东方明珠脚下&#xff0c;成为我国新能源汽车整车品牌中屈指可数拥有“万级”大功率直流充电网络的企业&#xff0c;助力中国“新基建”再上高峰&#xff0c;也为中国“双碳”目标的达成再添“电力”。至此&#x…

SpringBoot+VUE前后端分离项目学习笔记 - 【01 环境配置以及VUE2集成ElementUI】

技术栈一览 SpringBoot2 Vue2 ElementUI Axios Hutool Mysql Echarts 所需软件环境 版本一览 JDK 1.8Mysql5.7Node 14.16.0navicatIdea 2021 Vue-cli 安装 npm install -g vue/cli 查看版本 创建VUE工程 初始化工程 vue create vue 选择Manually select feature…

PLDI‘21-Path-Sensitive Sparse Analysis without Path Conditions-基于程序依赖图的路径敏感稀疏分析

这篇文章是港科大团队在PLDI 2021会议上发表的文章。在这之前&#xff0c;作者在PLDI 2018发表Pinpoint。这篇文章在Pinpoint上改进。在Pinpoint的设计中&#xff0c;存储摘要的时候仍然需要缓存大量的路径条件&#xff0c;以及在应用摘要时进行大量的克隆&#xff0c;导致逻辑…

Memtiter-benchmark源码解析1client类功能解析

client类功能解析 client.h m_event_base 为libevent loop 的事件循环类 define MAIN_CONNECTION m_connections[0] client.cpp client 构造函数初始化 client.cpp Line 55 conn 构造一个新对象 connect()函数 从m_config中读取出服务器ip地址和端口&#xff0c;通过sc->…

利用mAP评估目标检测模型

在本文[1]中&#xff0c;我们将了解如何使用 precision 和召回率来计算平均精度 (mAP)。mAP 将真实边界框与检测到的框进行比较并返回分数。分数越高&#xff0c;模型的检测越准确。 之前我们详细研究了混淆矩阵、模型准确性、精确度和召回率。我们也使用 Scikit-learn 库来计算…

MindSpore模型快速调优攻略笔记分享(下)

3.MindSpore云上调试调优 ModelArts云上调试调优 详细教程: https://support.huaweicloud.com/prepare-modelarts/modelarts 08 0002.html MindSpore IDE插件效率提升 通过智能代码块推荐、代码自动补全等特性&#xff0c;提升MindSpore脚本开发效率&#xff0c;对接ModelA…

2023年无线运动耳机排行榜最新公布、公认最好的运动耳机推荐

随着人们日益对健康的重视&#xff0c;”全民健身“正在全国&#xff0c;乃至全世界蔓延开来&#xff0c;其中跑步锻炼凭借着门槛低&#xff0c;益处多成为了大部分人的健身的首选。而随着跑步大军的壮大&#xff0c;国内蓝牙耳机市场也是一片火热。其中蓝牙无线运动耳机凭借着…

快速了解ZigBee的协议栈

带大家来一起快速的看懂ZigBee的协议栈的运行流程。 1.读任何程序都需要从main函数入手&#xff0c;那我们先来看Zmain.c中的main函数。 问题&#xff1a;在main中我们会看到很多的函数&#xff0c;我们究竟要看哪个函数呢? 回答&#xff1a;这么多的函数中其实我们只需要关注…