vue实现在页面拖拽放大缩小div并显示鼠标在div的坐标

news2025/1/13 13:52:51

1、功能要求:

实现在一个指定区域拖拽div,并可以放大缩小,同时显示鼠标在该div里的坐标,如图可示

在这里插入图片描述
缩小并拖动
在这里插入图片描述

2、实现

     <div class="div_content" ref="div_content">
                <div class="div_image" id="pic"
                    :style="{'zoom':zoom,'transform':'translate('+moveX+'px,'+moveY+'px)',}"
                    @mousedown.stop="mousedown($event)" @mousemove="handleMouseMove" @mouseleave="mouseout"
                   >


                </div>

                <div class="div_image_tool">
                    <img src="..." class="div_add " @click="add_img">
                    <div class="heng"></div>
                    <img src="..." class="div_add div_decrease" @click="dec_img">
                </div>
            </div>
            <div class="div_axirs">X:{{ux}} Y:{{uy}}</div>

js代码

data(){return{
                ux: 0,
                uy: 0,
                moveX: 0,//X轴移动的距离

                moveY: 0,

                startx: '',//鼠标的初始位置
                starty: '',
                endx: 0,
                endy: 0,
                zoom: 1,//放大的倍数
}
},
methods:{
    add_img() {

                this.zoom <= 10 ? this.zoom = this.zoom + 0.5 : ''
            },
            dec_img() {

                this.zoom > 0.5 ? this.zoom = this.zoom - 0.5 : ''
            },


         mousedown(e) {
                // 绑定mousemove
                this.startx = this.formatXY(e.pageX / this.zoom); this.starty = this.formatXY(e.pageY / this.zoom)
              

                
                document.onmousemove = (e) => {
                    this.moveX = this.formatXY(e.pageX / this.zoom) - this.startx + this.endx

                    this.moveY = this.formatXY(e.pageY / this.zoom) - this.starty + this.endy
                    e.preventDefault()
                };
                document.onmouseup = (e) => {
                    // 解除绑定mousemove

                    document.onmousemove = null;

                    this.endx = this.moveX

                    this.endy = this.moveY;
                }


            },
                   mouseout() {
                var that = this;
                that.ux = 0;
                that.uy = 0;
            },
  
            handleMouseMove(e) {
                this.getAxis(e)
            },
            getAxis(e) {
 
                this.ux = this.formatXY(e.offsetX / this.zoom);
                this.uy = this.formatXY(e.offsetY / this.zoom);
},
   formatXY(num) {
                return num.toFixed(0)
            },
            }

css

  .div_content {
          position: relative;
        width: 600px;
        height: 580px !important;
        margin: 0 20px;
        overflow: hidden;
        background: rgb(230, 229, 229);
    }

    .div_image {
        height: 400px;
        width: 400px;
        background: white;
        margin: 100px auto auto 100px !important;
    }

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

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

相关文章

药物滥用第二篇介绍

MTD&#xff1a; 美沙酮&#xff08;Methadone&#xff09;&#xff0c;是一种有机化合物&#xff0c;化学式为C21H27NO&#xff0c;为μ阿片受体激动剂&#xff0c;药效与吗啡类似&#xff0c;具有镇痛作用&#xff0c;并可产生呼吸抑制、缩瞳、镇静等作用。与吗啡比较&#x…

Chrome浏览器怎么清理单个页面缓存,简单实用

一、按F12 二、 右键点击刷新按钮 三、选择清空缓存并硬性重新加载 四、缓存已清空

网络空间安全体系

大家好&#xff0c;我是孪生质数-&#xff0c; 我是一名网络安全的爱好者&#xff0c;偶尔接触一点软件工程的知识&#xff0c;我不希望和大家一样变成码农&#xff0c;变相的网络搬砖&#xff0c;所以选择了网络空间安全&#xff0c;我自认为这个行业的前景非常大&#xff0c;…

通信设备为什么需要接地阻?

在现代社会&#xff0c;通信设备已经成为我们生活中不可或缺的一部分。无论是手机、电视、计算机还是互联网路由器&#xff0c;它们都在不断地演进&#xff0c;以满足我们日益增长的通信需求。 实际应用中&#xff0c;我们都会了解到通信设备在正常运行时产生的电磁波辐射和电…

浏览器不能访问阿里云ECS

一、浏览器不能访问端口 在阿里云ECS中构建了工程&#xff0c;nigix或者tomcat或者其他&#xff0c;然后在本地浏览器访问ip端口的时候&#xff0c;连接超时&#xff0c;解决办法&#xff1a; 进入阿里云ECS服务 -> 查看公网ip (外部连接需要使用公网) -> 进入ECS实例的…

算法通关村第九关黄金挑战——透彻理解二叉树中序遍历的应用

大家好&#xff0c;我是怒码少年小码。 上一篇讲了二分查找&#xff0c;今天我们看看它的难度扩展。 有序数组转为二叉搜索树 LeetCode 108&#xff1a;给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高…

第0章:怎么入手tensorflow

近年来人工智能的火爆吸引了很多人&#xff0c;网上相关的热门课程报名的人很多&#xff0c;但是坚持下去的人却少。那些晦涩的原理没有一定知识的积累很难能理解。 如果你对人工智能感兴趣&#xff0c;且想利用人工智能去实现某项功能&#xff0c;而不是对人工智能本身感兴趣&…

如何利用BIGEMAP软件查看历史影像

工具 Bigemap gis office地图软件 BIGEMAP GIS Office-全能版 Bigemap APP_卫星地图APP_高清卫星地图APP 很多人都在寻找历史影像图&#xff0c;这块的需求是非常大&#xff0c;历史影像一般可以用于历史地貌的变迁分析&#xff0c;还原以前的生态场景&#xff0c;对范围面积…

SSM - Springboot - MyBatis-Plus 全栈体系(三十二)

第七章 MyBatis-Plus 二、MyBatis-Plus 核心功能 5. 核心注解使用 5.1 理解和介绍 MyBatis-Plus 是一个基于 MyBatis 框架的增强工具&#xff0c;提供了一系列简化和增强的功能&#xff0c;用于加快开发人员在使用 MyBatis 进行数据库访问时的效率。 MyBatis-Plus 提供了一…

嵌入式学习笔记(58)C语言的内存操作

1.2内存位宽 1.2.1.内存的逻辑抽象图 提到内存&#xff0c;脑中要有一张逻辑图。这张图是一行行大小相等的格子&#xff0c;对于32位内存来说&#xff0c;一行就是4个字节。CPU要访问一个int型数据&#xff0c;则首先取地址,这里的地址指的是int型数据单元的首地址&#xff0…

如何使用Python快速实现文件共享并通过内网穿透技术公网访问?

文章目录 1.前言2.本地文件服务器搭建2.1.Python的安装和设置2.2.cpolar的安装和注册 3.本地文件服务器的发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 数据共享作为和连接作为互联网的基础应用&#xff0c;不仅在商业和办公场景有广泛的应用&#…

OpenWRT通过内网穿透实现安全可靠的ssh远程连接

文章目录 1.安装cpolar内网穿透2.配置SSH远程访问隧道3.公网远程连接4.固定远程连接地址 简单几步实现openWRT结合cpolar内网穿透工具实现远程ssh连接 1.安装cpolar内网穿透 cpolar是一个非常棒的跨平台、内网穿透工具&#xff0c;可以通过安全隧道将NAT或防火墙后面的本地服…

正视AI技术发展利弊,国外高校如何看待文书中使用ChatGPT

ChatGPT是由美国人工智能实验室OpenAI开发的对话AI模型&#xff0c;因极其出色的对话交互和文本生成能力在世界范围内迅速走红&#xff0c;短短5天用户就破了百万。 ChatGPT自2022年11月正式推出以来&#xff0c;已经成为一个热门话题&#xff0c;它可以用于各种各样的事情&am…

c51单片机中不同定义变量的存储位置不同

keil中对不同变量的数据进行存储 上图中是很长看到的一种存储数据变量code&#xff0c;类似这种存储方式还有data,xdata,idata,bdata,这些方式制定了数据的存储位置&#xff0c;方便程序中数据能够更快的处理&#xff08;对于小数据量当然就没有这方面的考虑&#xff09;。 传…

校园智慧党建小程序源码系统 带完整的搭建教程

大家好啊&#xff0c;今天来给大家分享一款校园智慧党建小程序源码系统。一起来看看吧。以下是部分功能代码图&#xff1a; 系统特色功能一览&#xff1a; 智能化管理&#xff1a;采用人工智能、大数据、云计算等技术手段&#xff0c;实现自动化、智能化管理。例如&#xff0c…

PVE(Proxmox)8.0的一些问题汇总

目录 前言 杂谈 pve和esxi选啥 直通类 显卡怎么直通 win10显卡报错43 直通后进不去系统或者系统有问题自救 pci类 拔了显卡开机了但是进不去系统 虚拟机类 虚拟机显示问号&#xff0c;而且创建不了新的虚拟机 我想用pve的虚拟机ikuai来连接pve怎么搞 前言 pve折腾了快…

CS 61A Fall 2023 Lecture 1 - Functions [Python] - Notes01, Lab00 and HW01

CS 61A Fall 2023 Lecture 1 - Functions [Python] 文章目录 CS 61A Fall 2023 Lecture 1 - Functions [Python]Note 01lab00HW01 I am gonna make a plan for my future in advance, to consistently refine my coding skills. And this class is what I will try to finish t…

Matlab论文插图绘制模板第121期—图中图

不知不觉&#xff0c;《Matlab论文插图绘制模板》系列教程已经连载更新了120期&#xff0c;而《Matlab进阶绘图》系列也更新了30期&#xff0c;分享了一系列各式各样数据图的标准化绘制模板&#xff1a; 本期分享的内容比较特殊&#xff0c;它可以串联起之前分享的一众数据图&a…

postman发送soap报文示例

一、soap简介 soap是一种基于XML的协议 二、postman发送soap请求 1、发送post请求&#xff0c;url&#xff1a;​​​ https://www.dataaccess.com/webservicesserver/NumberConversion.wso 2、headers设置&#xff0c;添加Content-Type&#xff0c;值为text/xml 添加SOAP…

Java 新手如何使用Spring MVC 中的查询字符串和查询参数

文章目录 什么是查询字符串和查询参数&#xff1f;Spring MVC中的查询参数处理可选参数处理多个值处理查询参数的默认值处理查询字符串示例&#xff1a;创建一个RESTful服务结论 &#x1f389;欢迎来到Java学习路线专栏~Java 新手如何使用Spring MVC 中的查询字符串和查询参数 …