一、通过JS获取鼠标点击时图片的相对坐标位置

源代码如下所示:

 <!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<title>通过JS获取图片的相对坐标位置</title> <style>
body {margin: 0; padding: 0; }
#area{width:300px;height:300px;}
#area img{border:none;cursor:pointer;width: 300px;height: 300px;}
.testBox {
width: 200px;
height: 200px;
overflow: auto;
}
</style>
</head> <body id="">
<h3>通过JS获取图片的相对坐标位置 示例</h3>
<div class="testBox">
<div id="area" onclick="getClickPos(event);">
<img id='imageID' src="data:images/1.jpg">
</div>
</div> <script type="text/javascript">
function getClickPos(e){
var xPage = (navigator.appName == 'Netscape')? e.pageX : event.x+document.body.scrollLeft;
var yPage = (navigator.appName == 'Netscape')? e.pageY : event.y+document.body.scrollTop;
identifyImage = document.getElementById("imageID");
img_x = locationLeft(identifyImage);
img_y = locationTop(identifyImage);
var xPos = xPage-img_x;
var yPos = yPage-img_y;
alert('X : ' + xPos + '\n' + 'Y : ' + yPos);
}
//找到元素的屏幕位置
function locationLeft(element){
offsetTotal = element.offsetLeft;
scrollTotal = 0; //element.scrollLeft but we dont want to deal with scrolling - already in page coords
if (element.tagName != "BODY"){
if (element.offsetParent != null)
return offsetTotal+scrollTotal+locationLeft(element.offsetParent);
}
return offsetTotal+scrollTotal;
}
//find the screen location of an element
function locationTop(element){
offsetTotal = element.offsetTop;
scrollTotal = 0; //element.scrollTop but we dont want to deal with scrolling - already in page coords
if (element.tagName != "BODY"){
if (element.offsetParent != null)
return offsetTotal+scrollTotal+locationTop(element.offsetParent);
}
return offsetTotal+scrollTotal;
}
</script>
</body>

补充

二、js图片上标注热点(相对定位)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<style>
.wrap{
width:200px;
height: 200px;
overflow: auto;
background: #ccc;
position: relative;
}
.ball{
width:20px;
height: 20px;
background: red;
border-radius: 50%;
position: absolute;
}
</style>
</head>
<body>
<div class="wrap">
<img src="data:images/1.jpg" alt="">
</div>
<script>
$('.wrap').click(function(e){
var radius=10;//半径
var offset=$(this).offset();
var top=e.pageY-offset.top-radius+"px";
var left=e.pageX-offset.left-radius+"px";
console.log(top);
console.log(left);
$('.wrap').append('<div class="ball" style="top:'+top+';left:'+left+'"></div>')
})
</script>
</body>
</html>

  

js点击获取—通过JS获取图片的相对坐标位置的更多相关文章

  1. html js点击按钮滚动跳转定位到页面指定位置(DIV)的方法代码

    一:通过html锚点实现滚动定位到页面指定位置(DIV):    如果我们要点击实现跳转的地方是一个html锚点,也就是点击一个A标签超链接实现跳转,可以把A标签的href属性直接指向跳转指定位置的d ...

  2. js点击按钮,放大对应图片代码

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. js 点击往div里添加图片(实例)

    <!DOCTYPE html> <html> <head> <title></title> </head> <body&g ...

  4. js点击事件代理时切换图片如何防抖动

    由于图片的加载速度比较慢,我们可以直接用64base对图片进行编码,把编码加在图片的url中~~~这样加载会快一些,也不会有切换图片时出现的抖动效果

  5. js点击获取—通过JS获取图片的绝对对坐标位置

    一.通过JS获取鼠标点击时图片的相对坐标位置 源代码如下所示:  <!DOCTYPE html> <html lang="en"> <head> ...

  6. js实现类似qq表情(插入图片以及获取光标的效果)

    <!doctype html><html style="height:100%"><head><meta charset="ut ...

  7. 解决在页面中无法获取qrcode.js生成的base64的图片

    应用场景 生成带二维码的推广海报图片 旧方法: 将用户自己的推广连接先通过qrcode.js生成二维码,然后再用后台返回的一张背景图片和二维码通过canvas绘制成一张海报. 问题 在部分安卓手机上获 ...

  8. 项目遇到的小问题(关于vue-cli中js点击事件不起作用和iconfont图片下载页面css样式乱的解答)

     第一个:关于vue-cli中js点击事件不起作用 在vue的methods方法queryBtnFun()中拼接html和click操作事件的时候,发现点击事件一起未起作用: 后来发现是DOM执行顺序 ...

  9. JS点击img图片放大再次点击缩小JS实现 简单实用Ctrl+C+V就可以用

    业务需要,从后台获取的图片列表,用img标签展示,用户需要查看大图.记录下来以便学习和参考.示例图如下: 放大之前: 放大之后: 点击后放大(由于图片高度超出了页面,需要通过overflow:auto ...

随机推荐

  1. SoapUI乱码问题处理方法

    前言 每个工具都会有一些意想不到的“坑”,SoapUI也不例外.无论是参数或者响应报文,大家可能都遇到过乱码问题,这里记录一下几种解决乱码的方法. 一.修改显示字体 在File>>> ...

  2. unity editor 折叠树

    https://blog.csdn.net/e295166319/article/details/52370575 需要两个类:树节点类和界面实现类 1:树节点类(TreeNode) using Un ...

  3. linux中安装gitlab和cicd(断网版)

    1:先介绍一下怎么查找所需要的依赖包 #yum install rpmname--downloadonly --downloaddir=/rpmpath 例如:yum install gitlab-r ...

  4. 工具 - MSF

    #ms17- use auxiliary/scanner/smb/smb_ms17_010 - exploit use exploit/windows/smb/ms17_010_eternalblue ...

  5. 如何解决IIS配置HTTPS证书后刷新消失问题

    IIS配置CER证书后完成证书申请后刷新后就会消失的这个BUG微软一直存在,因为我们一般申请都是下来的CER文件和私钥 但是IIS只支持PFX文件的导入,所以我们需要把CER文件和证书私钥转换成PFX ...

  6. 重置Docker里的gitlab管理员用户密码

    1.docker ps  找出容器的唯一标识 2.docker exec -it ad9b8c3e20f0 /bin/bash  进入Docker容器运行环境 3.开始重置gitlab管理员用户密码 ...

  7. Backbone中bind和bindAll的作用

    本文参考: http://blog.bigbinary.com/2011/08/18/understanding-bind-and-bindall-in-backbone.html bindAll内部 ...

  8. Soap从入门到实战

    Soap从入门到实战 参考文章:https://howtodoinjava.com/spring-boot/spring-soap-client-webservicetemplate/ 使用的技术:s ...

  9. CentOS7 通过YUM安装MySQL5.7 linux

    CentOS7 通过YUM安装MySQL5.7 1.进入到要存放安装包的位置 cd /home/lnmp 2.查看系统中是否已安装 MySQL 服务,以下提供两种方式: rpm -qa | grep  ...

  10. 3.Golang的包导入

    1.golang的源码文件可以随意命名,但是属于同一个包的源文件必须声明 package base 2.golang的包引入规则 import ( "fmt" #系统包直接写名字 ...