当前位置: 首页 > news >正文

vue实现悬浮窗拖动的自定义指令

 首先在自己的项目根目录下建一个 src --> config --> drag.js

然后在main.js中全局引入

//鼠标拖动
import drag from '@/config/drag';
Vue.use(drag);

drag.js文件相关代码

import Vue from 'vue';
//使用Vue.directive()定义一个全局指令
//1.参数一:指令的名称,定义时指令前面不需要写v-
//2.参数二:是一个对象,该对象中有相关的操作函数
//3.在调用的时候必须写v-
const drag = Vue.directive('drag', {//1.指令绑定到元素上回立刻执行bind函数,只执行一次//2.每个函数中第一个参数永远是el,表示绑定指令的元素,el参数是原生js对象//3.通过el.focus()是无法获取焦点的,因为只有插入DOM后才生效//   bind: function (el) {},//inserted表示一个元素,插入到DOM中会执行inserted函数,只触发一次inserted: function (el) {//子元素的id里面只要包含字符串title都可以捕捉到if (el.firstChild.id.indexOf("floatTitle") != -1) {el.firstChild.onmousedown = function (e) {var disx = e.pageX - el.offsetLeft;var disy = e.pageY - el.offsetTop;// console.log(e.pageX,el.offsetLeft);document.onmousemove = function (e) {// el.style.cursor = 'move';el.style.left = e.pageX - disx + 'px';el.style.top = e.pageY - disy + 'px';// console.log(el.style.left,el.style.top);}document.onmouseup = function () {// el.style.cursor = 'default';document.onmousemove = document.onmouseup = null;}}} else {el.onmousedown = function (e) {var disx = e.pageX - el.offsetLeft;var disy = e.pageY - el.offsetTop;// console.log(e.pageX,el.offsetLeft);document.onmousemove = function (e) {// el.style.cursor = 'move';el.style.left = e.pageX - disx + 'px';el.style.top = e.pageY - disy + 'px';// console.log(el.style.left,el.style.top);}document.onmouseup = function () {// el.style.cursor = 'default';document.onmousemove = document.onmouseup = null;}}}},//当VNode更新的时候会执行updated,可以触发多次//   updated: function (el) {}
});
export default drag;

在组件中使用

<div v-drag class="outerContain"><div class="floatLayer" id="floatTitle"></div>
</div>

相关文章:

vue实现悬浮窗拖动的自定义指令

首先在自己的项目根目录下建一个 src --> config --> drag.js 然后在main.js中全局引入 //鼠标拖动 import drag from /config/drag; Vue.use(drag); drag.js文件相关代码 import Vue from vue; //使用Vue.directive()定义一个全局指令 //1.参数一&#xff1a;指令的…...

gitee(ssh)同步本地

一、什么是码云 gitee Git的”廉价平替” > 服务器在国内&#xff0c;运行不费劲 在国内也形成了一定的规模 git上的一些项目插件等在码云上也可以找得到 二、创建仓库 三、删除仓库 四、仓库与本地同步 > 建立公钥 五、把仓库同步到本地 六、在本地仓库中创建vue项目…...

Redis新数据类型-Bitmaps

目录 Bitmaps 简介 命令 1. setbit (1) 格式 (2) 实例 2. getbit (1) 格式 (2) 实例 3. bitcount (1) 格式 (2) 实例 4. bitop (1) 格式 (2) 实例 我的其他博客 Bitmaps 简介 Bitmaps 是 Redis 的一种新数据类型&#xff0c;它是一种用于存储位信息的数据结构&…...

web前端之vue组件传参、各种传参的不同写法、语法糖

MENU vue2refemit vue3语法糖refemit(一)语法糖(二) vue2 refemit 子组件 <template><div><el-dialogtitle"新增":visible.sync"dialogFormVisible"close"handleClose"><el-form :model"form"><el-form…...

基于Nexus搭建Maven私服基础入门

什么是Nexus&#xff1f;它有什么优势&#xff1f; 要了解为什么需要nexus的存在&#xff0c;我们不妨从以下几个问题来简单了解一下: 为什么需要搭建私服&#xff1f;如果没有私服会出现什么问题&#xff1f; 对于企业开发而言&#xff0c;如果没有私服&#xff0c;我们所有…...

JavaScript自执行函数:用途、好处

JavaScript中的自执行函数是一个常见的编程技巧&#xff0c;它可以在特定的场景中发挥重要作用。本文将介绍自执行函数的用途、好处&#xff0c;并提供代码示例进行说明。 引言 在JavaScript编程中&#xff0c;自执行函数是一种特殊的函数调用方式&#xff0c;它能够在定义后…...

Git使用无法拉取

错误提示&#xff1a; error setting certificate verify locations: CAfile: C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt CApath: none 问题原因&#xff1a; 这个问题是因为git配置里crt证书的路径不正确导致的 解决办法&#xff1a; 这个路径配置是在C:\Pro…...

来聊聊CAS

什么是CAS CAS全称Compare-And-Swap&#xff0c;是一种无锁编程算法&#xff0c;即比较当前的值与旧值是否相等若相等则进行修改操作(乐观锁机制)&#xff0c;该类常用于多线程共享变量的修改操作。而其底层实现也是基于硬件平台的汇编指令&#xff0c;JVM只是封装其调用仅此而…...

【EventBus】EventBus源码浅析

二、EventBus源码解析 目录 1、EventBus的构造方法2、订阅者注册 2.1 订阅者方法的查找过程2.2 订阅者的注册过程1. subscriptionsByEventType 映射&#xff1a;2. typesBySubscriber 映射&#xff1a;2.3 总结订阅者的注册过程 3、事件的发送 3.1 使用Post提交事件3.2 使用p…...

Buck电源设计常见的一些问题(二)MOS管炸机问题

MOS管炸机问题 1.概述2.MOS管的相关参数3.过电压失效4.过电流失效5.静电放电和热失效1.概述 在我们做电源产品或者电机控制器时候,经常会坏MOS管。我相信90%以上的硬件工程师在职场生涯中都会遇到这类问题。然而这类问题也总是让人防不胜防。经常我们都会开玩笑的说,没烧过管…...

Javascript高频面试题

系列文章目录 文章目录 系列文章目录前言1.JavaScript常见数据类型null 和 undefind区别symbol&#xff08;ES6新增&#xff09;、bigInt&#xff08;ES10新增&#xff09; 2.JavaScript判断数据类型的方式3. 和 区别&#xff0c;分别在什么情况使用&#xff1f;4.变量声明 va…...

锁--07_2---- index merge(索引合并)引起的死锁

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 案例分析生产背景死锁日志表结构执行计划 EXPLAN为什么会用 index_merge&#xff08;索引合并&#xff09;为什么用了 index_merge就死锁了解决方案注&#xff1a;M…...

后端打印不了trace等级的日志?-SpringBoot日志打印-Slf4j

在调用log变量的方法来输出日志时&#xff0c;有以上5个级别对应的方法&#xff0c;从不太重要&#xff0c;到非常重要 调用不同的方法&#xff0c;就会输出不同级别的日志。 trace&#xff1a;跟踪信息debug&#xff1a;调试信息info&#xff1a;一般信息warn&#xff1a;警告…...

声明式编程Declarative Programming

接下来要介绍第五种编程范式 -- 声明式编程。分别从它的优缺点、案例分析和适用的编程语言这三个方面来介绍这个歌编程范式。 声明式编程是一种编程范式&#xff0c;其核心思想是通过描述问题的性质和约束&#xff0c;而不是通过描述解决问题的步骤来进行编程。这与命令式编程…...

人工智能与天文:技术前沿与未来展望

人工智能与天文&#xff1a;技术前沿与未来展望 一、引言 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域的应用越来越广泛。在天文领域&#xff0c;AI也发挥着越来越重要的作用。本文将探讨人工智能与天文学的结合&#xff0c;以及这种结合带…...

JeecgBoot 框架升级至 Spring Boot3 的实战步骤

JeecgBoot 框架升级 Spring Boot 3.1.5 步骤 JEECG官方推出SpringBoot3分支&#xff1a;https://github.com/jeecgboot/jeecg-boot/tree/springboot3 本次更新由于属于破坏式更新&#xff0c;有几个生态内的组件&#xff0c;无法进行找到平替或无法升级&#xff0c;目前尚不完…...

论文阅读——Semantic-SAM

Semantic-SAM可以做什么&#xff1a; 整合了七个数据集&#xff1a; 一般的分割数据集&#xff0c;目标级别分割数据集&#xff1a;MSCOCO, Objects365, ADE20k 部分分割数据集&#xff1a;PASCAL Part, PACO, PartImagenet, and SA-1B The datasets are SA-1B, COCO panopt…...

gitlab下载,离线安装

目录 1.下载 2.安装 3.配置 4.启动 5.登录 参考&#xff1a; 1.下载 根据服务器操作系统版本&#xff0c;下载对应的RPM包。 gitlab官网&#xff1a; The DevSecOps Platform | GitLab rpm包官网下载地址: gitlab/gitlab-ce - Results in gitlab/gitlab-ce 国内镜像地…...

【SpringBoot篇】Interceptor拦截器 | 拦截器和过滤器的区别

文章目录 &#x1f339;概念⭐作用 &#x1f384;快速入门⭐入门案例代码实现 &#x1f6f8;拦截路径&#x1f354;拦截器interceptor和过滤器filter的区别&#x1f386;登录校验 &#x1f339;概念 拦截器&#xff08;Interceptor&#xff09;是一种软件设计模式&#xff0c;…...

conan入门(三十六):在set_version方法中从pom.xml中读取版本号实现动态版本定义

一般情况下&#xff0c;我们通过self.version字段定义conan 包的版本号如下&#xff1a; class PkgConan(ConanFile):name "pkg"version "1.7.3"因为版本号是写死的&#xff0c;所以这种方式有局限性&#xff1a; 比如我的java项目中版本号是在pom.xml中…...

YOLO26驱动的足球比赛多目标检测系统:球员、守门员、裁判与足球的实时识别(项目源码+数据集+模型权重+UI界面+python+深度学习+远程环境部署)

摘要 足球作为全球最受欢迎的体育运动之一&#xff0c;其数字化分析对于战术研究、运动员评估和比赛裁判具有重要意义。本文基于YOLO目标检测算法&#xff0c;构建了一套足球运动员识别检测系统&#xff0c;实现对比赛场景中足球、守门员、球员和裁判四类目标的自动检测与定位…...

Python协程与异步模式进阶

Python协程与异步模式进阶 一、协程的本质 协程是可以暂停和恢复执行的函数。Python中协程经历了三代演进&#xff1a; - 基于生成器的协程&#xff08;Python 2.5&#xff0c;已废弃&#xff09; - yield from协程&#xff08;Python 3.3&#xff09; - async/await原生协程…...

基于Mayan EDMS的文档管理系统部署与优化实践

1. 项目概述&#xff1a;一个面向文档管理的开源解决方案如果你在寻找一个能够替代Confluence、SharePoint&#xff0c;甚至是Google Drive的开源自托管方案&#xff0c;那么joyozhang333-lgtm/mayan-kin这个项目值得你花时间研究。它不是一个全新的轮子&#xff0c;而是基于一…...

ARM RealView Developer Kit v2.2安装与配置指南

1. RealView Developer Kit v2.2环境准备与系统要求作为ARM早期推出的经典开发套件&#xff0c;RealView Developer Kit v2.2&#xff08;以下简称RVDK&#xff09;主要面向Philips系列芯片的嵌入式开发。在开始安装前&#xff0c;需要确认开发环境满足以下基础条件&#xff1a…...

EldenRingSaveCopier终极指南:轻松迁移艾尔登法环存档的完整解决方案

EldenRingSaveCopier终极指南&#xff1a;轻松迁移艾尔登法环存档的完整解决方案 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 你是否曾在艾尔登法环中投入数百小时&#xff0c;却因存档损坏或设备更换而面…...

2026年广州商务接待服务哪家服务专业,价格实惠

在广州这座商业之都&#xff0c;高端商务接待服务的需求日益增长。然而&#xff0c;许多企业在选择商务接待服务时&#xff0c;常常面临流程不规范、细节把控不到位、资源匹配不合理等问题。特别是在政企宴请、圈层活动和企业商务配套服务方面&#xff0c;如何确保高标准的服务…...

BlenderGIS插件实战:从OSM数据到城市建筑3D模型全流程解析

1. 环境准备与插件安装 第一次接触BlenderGIS时&#xff0c;我也被各种报错折腾得够呛。这里分享一个零失败的安装方案&#xff0c;特别适合Windows系统用户。首先去Blender官网下载最新稳定版&#xff08;目前是3.6 LTS&#xff09;&#xff0c;建议选便携版(zip)而非安装版&a…...

第十一篇:《性能压测基础:JMeter线程模型与压测策略设计》

完成了接口功能测试后&#xff0c;我们将正式进入性能压测领域。性能压测的核心是模拟真实用户并发访问&#xff0c;评估系统在不同负载下的响应能力。本文将从 JMeter 的线程模型出发&#xff0c;讲解如何设计合理的压测策略&#xff08;基准测试、负载测试、稳定性测试&#…...

基于MPU6050角速度动态阈值的自适应计步算法实现

1. MPU6050与动态计步算法入门 你可能已经见过各种智能手环和运动设备的计步功能&#xff0c;但有没有想过它们是如何准确统计步数的&#xff1f;今天我要分享的是一种基于MPU6050传感器的动态阈值计步算法实现。这种方案特别适合手环、腿环这类穿戴设备&#xff0c;核心思路是…...

MAC地址失效下基于射频指纹的WiFi设备识别技术

1. 项目概述&#xff1a;当MAC地址失效时如何识别设备在当今的智慧城市和物联网环境中&#xff0c;WiFi设备识别技术面临着前所未有的挑战。传统依赖MAC地址的识别方法正逐渐失效——现代移动设备普遍采用MAC地址随机化技术&#xff0c;每次发送探测请求时都会生成虚拟MAC地址。…...