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`
}
document.onmouseup = function(e){
document.onmousemove = null
document.onmouseup = null
}
}
}
})
相关推荐
教程:使用树莓派连接Pixhawk飞控
教程:使用树莓派连接Pixhawk飞控树莓派可以与Pixhawk飞控相连,读取飞控中的状态信息,同时对飞控发送指令。树莓派作为一个更高性能的计算平台,可以运行图像识别、机器学习、实时路径规划等程序,为开源无人机带来了无限可能。本文将介绍如何在树莓派上使用APSync。不需要了解Linux,即可将树莓派连接到Pixhawk飞控。使用的器材为: Pixhawk飞控 树莓派3B(Raspberry Pi
element-vue的dialog可拖拽指令
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.
ENVI SARscape安装全攻略:从下载到汉化一步到位(附最新试用申请链接)
本文提供ENVI SARscape从下载安装到汉化的完整指南,特别针对InSAR(合成孔径雷达干涉测量)分析环境搭建。详细介绍了系统要求、分步安装流程、汉化优化方法及硬件加速配置,并分享数据处理验证和常见问题解决方案,帮助用户高效搭建遥感数据分析平台。
Vue自定义指令 dialogDrag 报错:Cannot set properties of null (setting ‘onmousedown‘)
因为我没有在绑定的 div 下设定该class,所以导致获取不到控制拖动的DOM元素。排查后发现是因为拖拽指令的代码里,是要获取弹窗的头部,当按下头部才能拖动。在弹窗的 head 部分添加一个 class。Vue项目,自定义了一个拖拽弹窗的指令。
基于Python API的ECMWF大气数据批量下载与自动化处理实践
本文详细介绍了如何利用Python API实现ECMWF大气数据的自动化批量下载与处理。针对遥感分析中手动下载ERA5等数据的痛点,文章提供了从API密钥配置、核心脚本编写到元数据解析、任务队列调度及数据质量检查的全流程实践指南,旨在帮助科研与工程人员高效获取并处理大规模气象数据。
Miniconda入门:在CentOS上的安装、基本操作、目录结构、卸载
Miniconda是一个 免费的 轻量级的 conda安装程序 它只包含conda、Python、pip、zlib等基础的文件和依赖包 使用conda install命令可从Anaconda存储库中安装额外的conda包 简介 下载 安装 基本操作 虚拟环境的操作 包的操作 目录结构 卸载
element-ui el-dialog侧边弹窗可横向拖拽改变宽度
el-dialog侧边弹窗可横向拖拽改变宽度,并且存储到localStorage,刷新页面后依然是拖拽后的宽度 Vue.directive('dialogDrag', { inserted: function (el) { const dragDom = el.querySelector(".el-dialog"); dragDom.style.cursor = "e-resize"; const dialogHeader = el.querySelector('.el-dialog__hea
立创·庐山派-K230-CanMV(嘉楠勘智)开发板通过ATK-ESP8266实现图像识别数据无线传输至原子云
本文详细介绍了如何使用立创·庐山派-K230-CanMV开发板,通过ATK-ESP8266 WIFI模块实现图像识别数据的无线传输至原子云平台。内容包括硬件连接、软件环境搭建、AT指令控制、原子云连接及数据上传的全过程,并提供了实用的调试技巧和常见问题解决方案,为物联网应用开发提供了完整实践指南。
elementUI设置dialog从左侧滑出
使用CSS3的 translate3d 演示来实现动画效果w3school链接 控制100%和0的位置,可以控制从不同方向滑出translate3d(x,y,z) @keyframes dialog-fade-in { 0% { transform: translate3d(100%, 0, 0); opacity: 0; } 100%...
【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)
【用unity实现100个游戏之7】实现一个类《杀戮尖塔》的卡牌回合制游戏(附项目源码)
YOLOv11-seg改进系列 | 引入CVPR2022 MetaFormer,零参数池化Token混合+StarReLU MLP,精度涨不掉速
本文提出了一种改进YOLOv11分割任务的C3k2_PoolingFormer模块,通过引入MetaFormer架构和Pooling Token Mixer,在保持模型轻量化的同时增强全局感受野建模能力。核心创新包括:1)使用零参数的AvgPool3×3差值作为Token Mixer,实现高效邻域信息聚合和局部对比增强;2)采用StarReLU MLP替代传统激活函数,提升非线性表达能力。改进后模型仅增加6.1%参数量,却能显著提升分割精度,特别适用于需要长程依赖建模的实例分割任务。该设计为轻量级视觉模型提
vue3使用自定义指令简单实现一个可拖拽弹窗组件
vue3使用自定义指令简单实现一个可拖拽弹窗组件
HLA分型
HLA分型 一、根据WES的tumor数据进行数据分型 选用hlahd 软件安装及使用 [root@18605fd8771e ~]# wget https://jaist.dl.sourceforge.net/project/bowtie-bio/bowtie2/2.4.1/bowtie2-2.4.1-linux-x86_64.zip [root@18605fd8771e ~]# unzip bowtie2-2.4.1-linux-x86_64.zip && mv bowtie2-2.4.1
Vue自定义指令实现弹窗拖拽,四边拉伸及对角线拉伸
Vue自定义指令实现弹窗拖拽,四边拉伸及对角线拉伸引言页面布局drag.js文件弹窗拖拽实现及边界限制插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 引言 近期公司vue前端项目需求:实现弹窗的拖拽,四边拉伸及对角线拉伸,以及弹窗边界处理。本人使用vue的自定义指令编写了drag.js文件
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
vue自定义弹窗拖拽指令
自定义弹窗拖拽指令 第一步: src目录下新建目录directive,然后在directive目录下的新建文件el-drag-dialog.js,在该文件里实现了拖拽逻辑。 el-drag-dialog.js文件代码如下: export default { bind(el, binding, vnode) { const dialogHeaderEl = el.querySelector('.el-dialog__header') const dragDom = e
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
vue自定义指令弹窗拖拽
vue自定义指令弹窗拖拽
vue2自定义指令,弹窗拖拽,设置拖拽界限
vue2自定义指令,设置弹窗拖拽,设置拖拽界限
Vue3自定义指令实现鼠标拖拽、触摸拖拽弹窗
【代码】Vue3自定义指令实现鼠标拖拽、触摸拖拽弹窗。
弹窗实现拖拽(Vue自定义指令)
弹窗实现拖拽(Vue自定义指令)
vue v-dialogDrag自定义指令 + element-ui: 实现弹窗拖拽组件
有一个dialog弹框,弹框的背景并不是全屏的,只在除header,sidebar的地方显示,要求拖拽dialog弹框不能超过背景。 在components/common创建directives.js,具体代码如下: import Vue from 'vue'; // v-dialogDrag: 弹窗拖拽属性 Vue.directive('dialogDrag', { bind(el, ...
vue常用自定义指令(弹窗拖拽、阻止重复点击、输入框失焦去空格等)
【前端】vue常用自定义指令(弹窗拖拽、阻止重复点击、输入框失焦去空格等)
Vue2+Element 弹窗(Dialog)可拖拽自定义指令
Vue2+Element 弹窗(Dialog)可拖拽自定义指令
vue中通过自定义指令实现一个可拖拽,缩放的弹窗
指令代码 vue组件代码,弹窗
vue+element实现弹窗拖拽
因为element没有自带弹窗拖拽效果,所以就需要自定义指令去控制 可能写的不好,请多指教 首先新建一个js,作为指令 import Vue from 'vue'; /**** *自定义弹窗拖拽指令 *Autor USER-T * time 2020-05-13 **** */ // v-dialogDrag: 弹窗拖拽 Vue.directive('dialogDrag', { bind(el, binding, vnode, oldVnode) { const dialogHe
vue 自定义指令弹窗鼠标拖拽弹窗表头,弹窗移动
vue自定义指令拖拽
vue封装自定义指令-弹窗拖拽属性
【代码】vue封装自定义指令-弹窗拖拽属性。
如何让ElementUI的Dialog弹窗可以拖拽移动
实现原理: 利用vue创造一个自定义指令,绑定到需要拖拽移动的el-dialog组件上,在自定义指令中处理弹窗拖拽。
5万+



被折叠的 条评论
为什么被折叠?



