vue2 自定义指令实现可移动模态框效果

2023-10-27

vue2 自定义指令实现可移动模态框效果

此效果通过 vue 指令方式实现任意元素可拖拽移动。
参考官网指令介绍 https://v2.cn.vuejs.org/v2/guide/custom-directive.html

  • 在 drag.js 文件中使用 Vue.directive() 注册一个全局自定义指令 v-drag

    import Vue from 'vue';
    // 1.参数一:指令的名称,定义时指令前面不需要写v-
    // 2.参数二:是一个对象,该对象中有相关的操作函数
    // 3.在调用的时候必须加v-
    const drag = Vue.directive('drag', {
        // 每个函数中第一个参数永远是el,表示绑定指令的元素,el参数是原生js对象
    	// binding 是一个对象,包含 name(指令名,不包括 v- 前缀)、value(指令的绑定值)、arg(传给指令的参数)等参数
    
    	// 只调用一次,指令第一次绑定到元素时调用
        bind: function (el) { },
        // 被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)
        inserted: function (el, binding) {
            el.onmousedown = function (e) {
                var disx = e.pageX - el.offsetLeft;
                var disy = e.pageY - el.offsetTop;
                document.onmousemove = function (e) {
                    el.style.left = e.pageX - disx + 'px';
                    el.style.top = e.pageY - disy + 'px';
                }
                document.onmouseup = function () {
                    document.onmousemove = document.onmouseup = null;
                }
            }
        },
        // 所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前
        updated: function (el) { }
    })
    export default drag;
    
  • 在 main.js 中引入该指令:

    import './utils/drag'
    
  • 在需要实现拖拽的元素中,加入指令:v-drag

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue2 自定义指令实现可移动模态框效果 的相关文章

随机推荐

  • 文件和注册表的重定向解决方法

    注册表重定向解决办法 转载http www 2cto com os 201411 350858 html 32位程序如何访问64位的注册表 HKLM Software 在调用函数RegCreateKeyEx创建注册表项时 对其第六个参数RE
  • .NET Core 在程序集中集成Razor视图

    前言 有时候 我们在开发一个程序集供其他项目引用的时候 可能需要对外输出一些HTML的结构数据 还有一些情况我们可能开发的是一个中间件 这个中间件需要提供一些界面来对外展示数据或者是内部的一些程序的运行信息 这个时候我们也需要一个界面来做这
  • 电路原理图中的“NC“是什么意思?

    电路原理图中的 NC 是什么意思 1 在看电路原理图的时候 电路原理图上有 NC 我查了下是表示 此处不贴任何电子器件 我看了下实际的电路板确实没贴 那么不贴的话是不是相当于这个位置空出来了 断路 了 就是说芯片的这个引脚在电路中是 悬空状
  • 程序员必知的23种设计模式之享元模式

    文章目录 1 模式引出 展示网站项目需求 1 1 传统方案解决网站展现项目 1 2 传统方案解决网站展现项目 问题分析 2 享元模式基本介绍 2 1 享元模式的原理类图 2 2 内部状态和外部状态 可共享和不可共享 3 方案修改 4 享元模
  • flink维表join的几种方式(1)

    维表join的几种方式 一 将维表预加载到内存关联 实现方式 定义一个类实现RichFlatMapFunction在open 方法中读取全部数据加载到内存中 优缺点 因为存在内存中 所以仅支持小数据量维表 因为open方法中读取 所以维表变
  • 简单的两操作数计算器实现(基于Java网络编程)

    客户端代码实现 import java io import java net import java util Scanner 1 已知client端 提交计算表达式请求 如 3 4 2 在server服务器端完成运算并将结果返回给clie
  • Linux下报 No manual entry for 的解决方法

    报错展示 报错原因 没有安装 man pages 这个包 解决方法 yum y install man pages
  • 【界面】yolov8+pyqt5进行目标识别

    解决问题 通过pyqt5进行界面设计 调用yolov8模型对目标进行检测 文章目录 工具 准备工作 获取Onnx模型 核心代码 运行结果 源代码路径 工具 语言 python 主要库 pyqt5 检测模型 yolov8 准备工作 获取Onn
  • 机器学习:Self-supervised Learning for Speech and image

    review self supervised learning for text 1 Self supervised learning for speech 使用Speech版本的bert能比较好的作用于语音任务上 如果没有self sup
  • Windows无法安装到这个磁盘。选中的磁盘具有MBR分区表。在EFI系统上,Windows只能安装到GPT磁盘

    问题描述 Windows无法安装到这个磁盘 选中的磁盘具有MBR分区表 在EFI系统上 Windows只能安装到GPT磁盘 原因 说明本电脑的上一个系统的磁盘分区方式采用的MBR分区表 而我们U盘安装时 驱动方式是EFI系统 EFI与之对应
  • 力扣(LeetCode) 1.两数之和(java)

    题目 给定一个整数数组 nums 和一个整数目标值 target 请你在该数组中找出 和为目标值 target 的那 两个 整数 并返回它们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素在答案里不能重复出现 你可以按
  • NDK_MODULE_PATH

    Cocos2d x 2 1的测试环境搭建 先下载COCOS2D的包解压后运行里面的create android project bat 这里面要先设置相应的路径 他会引导用户创建一个自定义项目 在编译这个项目前要先在ECLIPSE里设置ND
  • log4j2日志配置

    背景 log4j2相对于log4j 1 x有了脱胎换骨的变化 其官网宣称的优势有多线程下10几倍于log4j 1 x和logback的高吞吐量 可配置的审计型日志 基于插件架构的各种灵活配置等 官方配置文档 http logging apa
  • 两种方法实现Windows系统下批量重命名文件

    任务 我们现在有一批文件 想要批量的重命名文件 方便程序读写 例如 将下面的这些图片重命名为1 jpg 2 jpg 1000 jpg 总不能一个一个改吧 Windows自带的重命名 Windows自带的功能也可以进行重命名 操作很简单 第一
  • Android Gradle获取第三方SDK最新版本号

    由于最近隐私权限问题 需要更新一下友盟的SDK 但是找不到最新的版本号在哪里 android studio也没有主动提示可以更新版本了 如下 不是最新的 implementation com umeng umsdk asms 1 4 0 i
  • SpringBoot动态定时任务(完整版)

    本文定时任务功能 增 删 改 启动 暂停 话不多说 直接上代码 你们直接CV就可以用 执行定时任务的线程池配置类 import org springframework context annotation Bean import org s
  • 论文分享-Heterogeneity-Aware Cluster Scheduling Policies for Deep Learning Workloads

    前言 这篇文章是由斯坦福大学和微软研究院共同合作的 于2020年11月发表于系统类顶级会议OSDI 主要研究了不同异构硬件资源对深度学习负载的影响和集群调度策略的设计 1 摘要 专门的加速器 如gpu TPUs fpga和定制asic 已经
  • ed2k文件下载方法

    之前可以用百度网盘的离线下载进行操作 但现在行不通了 听我的别乱尝试 直接下个迅雷 复制了ed2k链接之后就直接弹出窗口下载
  • iTerm2 配置

    https www jianshu com p f45f64cd6cca iTerm2超详细安装和配置 简书 iTerm2固定标签名字 简书
  • vue2 自定义指令实现可移动模态框效果

    vue2 自定义指令实现可移动模态框效果 此效果通过 vue 指令方式实现任意元素可拖拽移动 参考官网指令介绍 https v2 cn vuejs org v2 guide custom directive html 在 drag js 文