功能如下:

1、在图片区域内,点击鼠标左键对图片进行标注,并添加标注图片 ;

2、鼠标右键点击 已标注图片 删除当前标注。

<div class="myBiaoZhu" id="myBiaoZhuDiv"><imgid="myBiaoZhu":src="parseImgUrl"style="width:1000px;height:638px;"alt=""/></div>
 data() {return {parseImgUrl:"",pointImg: require("../../../public/01.svg"),pointSize: 10, //点的大小banMa: [],};},
mounted() {document.getElementById("myBiaoZhu").oncontextmenu = e => {if (e && e.preventDefault) {//阻止默认浏览器动作(W3C)e.preventDefault();} else {//IE中阻止函数器默认动作的方式window.event.returnValue = false;}return false;}; //阻止冒泡行为和默认右键菜单事件// console.log(196, this.parseImgUr == undefined);document.getElementById("myBiaoZhu").onmousedown = e => {e = e || window.event;// console.log(this.serialNumber);// console.log(this.serialNumber.length);// debugger;if (this.serialNumber.length == 0 && this.parseImgUrl.length > 0) {// console.log(this.banMa.length);this.$refs.selectEquipment.visible = true;this.$refs.selectEquipment.formConfig.isShowSubmitBtn = true;return false;}if (e.button !== 2 ) {//判断是否右击/*event.screenX是屏幕左上角到鼠标当前位置的x轴距离;event.clientX是浏览器左上角到鼠标当前位置的x轴距离;event.setoffX是鼠标当前点击控件左上角到鼠标当前位置的x轴距离;*/var x = e.offsetX || e.layerX;var y = e.offsetY || e.layerY;console.log(x, y);var myImg = document.querySelector("#myBiaoZhu");var currWidth = myImg.clientWidth;var currHeight = myImg.clientHeight;var ProportionWidthInImg = x / currWidth;var ProportionHeightInImg = y / currHeight;// console.log("图片比例高度:"+ProportionHeightInImg)// console.log("图片比例宽度:"+ProportionWidthInImg)this.banMa.push({// id: this.banMa.length + 1,positionLat: x,positionLng: y,});this.createMarker(x, y);}};},

methods: {//画点createMarker(x, y) {var div = document.createElement("div");div.className = "marker";div.id = "marker" + this.banMa.length;y =y + document.getElementById("myBiaoZhu").offsetTop - this.pointSize / 2;x =x +document.getElementById("myBiaoZhu").offsetLeft -this.pointSize / 2;div.style.width = this.pointSize * 4.4 + "px";div.style.height = this.pointSize * 5.8 + "px";// div.style.backgroundColor = this.pointColor;div.style.background = "url(" + this.pointImg + ") no-repeat";div.style.position = "absolute";div.style.left = x + "px";div.style.top = y + "px";div.oncontextmenu = e => {//阻止冒泡行为和默认右键菜单事件,同时删除该点var id = e.target.id;document.getElementById("myBiaoZhuDiv").removeChild(div);// this.banMa = this.banMa.filter(//   item => item.id != id.slice(6, id.length)// );this.banMa = [];this.banMa.push({ regionId: this.regionId });this.unbunding(); // 解绑接口 用不到删除即可if (e && e.preventDefault) {//阻止默认浏览器动作(W3C)e.preventDefault();} else {//IE中阻止函数器默认动作的方式window.event.returnValue = false;}return false;};document.getElementById("myBiaoZhuDiv").appendChild(div);this.submitEqArr();  // 提交接口 用不到删除即可},},

参考链接:https://blog.csdn.net/m0_46627730/article/details/106583908?utm_term=vue%E5%9B%BE%E7%89%87%E7%82%B9%E5%87%BB%E4%BD%8D%E7%BD%AE&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-1-106583908&spm=3001.4430

vue 点击对图片进行标注并记录当前的坐标相关推荐

  1. VUE实现前台图片 标注(添加矩形框)、放大、缩小、拖拽 -----个人记录

    VUE实现前台图片 标注(添加矩形框).放大.缩小.拖拽 需求:实现图片上自定义多个矩形选框,选框可移动缩放拖动,图片可以放大缩小.拖拽 ,选框内填充标注文字. 框内填充文字基本都会,不多赘述,后期可 ...

  2. js 点击改变内容与vue 点击改变内容

    js 的代码如下 <!DOCTYPE html> <html><head><meta charset="UTF-8"><tit ...

  3. vue限制点击次数_vue点击切换颜色限制个数(用了mui框架)

    vue点击切换颜色 只能点击一个 修改资料--类别 类别 保存 {{item.msg}} 最多可选择三项 mui.init() var categroy = new Vue({ el:'#categr ...

  4. html编辑点击取消复原,vue点击编辑按钮,内容变成input可以修改,也可以删除

    一.效果 图1 图2,点击报错之后,又变成图1的效果 二.使用到了element UI中的以下组件: 三.使用的关键点是vue中的v-if指令 四.关键代码如下 HTML部分 添加街道 编辑 保存 @ ...

  5. Vue导航点击路由跳转后样式不变

    Vue导航点击路由跳转后样式不变 <template><ul><li :class="{active:isActive==1}" @click=&qu ...

  6. vue点击ul中的li显示,点击其他地方隐藏

    vue点击ul中的li显示弹框,点击其他地方隐藏弹框 注意:ref="seatTipOperation" <ulref="seatTipOperation" ...

  7. vue 点击文字input_vue input实现点击按钮文字增删功能示例

    本文实例讲述了vue input实现点击按钮文字增删功能.分享给大家供大家参考,具体如下: content="width=device-width, user-scalable=no, in ...

  8. vue点击网页全屏_vue中实现点击变成全屏的多种方法

    项目中有点击按钮实现全屏功能 方式一:js实现全屏 全屏 data: data() { return { fullscreen: false }; }, methods: screen() { let ...

  9. vue自定义弹窗dialog,vue 点击遮罩层功能区以外的地方关闭遮罩层

    vue自定义弹窗dialog,vue 点击遮罩层功能区以外的地方关闭遮罩层 1.示例展示 2.代码 <template><div class="content"& ...

最新文章

  1. java 两个字段排序,如何在Java中按两个字段排序?
  2. LeetCode MySQL 1097. 游戏玩法分析 V
  3. 入门 | 一文介绍机器学习中基本的数学符号
  4. ajax 解析数组集合,ajax怎样解析json数组并用模板引擎渲染
  5. 【Git】mac执行git命令出现xcrun: error: invalid active developer path解决方法
  6. 双十一要来了,如何设计出那些牛X的促销页面?
  7. linux6.0设置共享文件夹,[原创] how to virtualbox sharefolder共享文件夹(数据空间)设置全记录...
  8. Advanced Bash Sell Scripting学习笔记1
  9. [区块链] 带你进入Bitcoin开发 - 环境搭建
  10. UVA10074 Take the Land【最大子段和+DP】
  11. testbed代码审查信息提取
  12. 记录 | Latex 双栏排版插入图片后图片太大的问题 一种解决方案
  13. 咖说 | 暗潮涌动,ERC20 BTC 正在搅动市场
  14. 学学这五招,打造自媒体短视频
  15. cmd打开时提示“系统找不到指定的路径”“the system cannot find the path specified”
  16. 中山大学自考网校招生简章
  17. Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection brok
  18. python 在企业微信通过群机器人发送消息
  19. python代码少的作品_原创 8行python代码展示程序员从入门到大神(或跑路)的全部状态...
  20. MetaTrader LiveUpdate 概览

热门文章

  1. MySql连接超时引起的生产故障
  2. sub() 和 sup()
  3. win10显示服务器登录失败,win10登陆不了云服务器异常
  4. 如何关闭react的端口号_react改端口号
  5. python打分号吗_Python 姓名评分
  6. 获取全国中学信息(人人网)
  7. vue基础-实现控制元素显示隐藏 v-show与v-if,以及v-if-else
  8. photoshop笔刷导入_30多种高质量的金属质感,图案和Photoshop笔刷
  9. [电影]吴宇森之《喋血街頭》
  10. Android Gradle Plugin指南(五)——Build Variants(构建变种版本)