javascript - 使用相对定位在图像上创建标记?

标签 javascript jquery css

我希望能够标记用户点击的图像,存储坐标,然后能够在以后重新创建标记。我已将存储部分取下,但我无法让标记图像显示在图像上。

我发现了一个类似的问题here使用绝对定位,但我希望坐标相对于图像。

看起来像 jQuery position会给我相对于父级的位置,但是从那里我将如何创建和定位标记图像相对于父级的位置?任何帮助将不胜感激。谢谢

 <div id="container">
    <img id="imgtoclick"></img>
</div>


$(document).ready(function() {
    $("#imgtoclick").click(function(e) {
        e.preventDefault();
        var left = this.position.left;
        var top = this.position.top;
    //how to create mark image relative to parent
        var img = $('<img>');
    })
});

最佳答案

跟随@Blenders 的帖子,但如果你的图像嵌套在定位元素中,你将需要递归地获取坐标:

var myImg = ...

var getAbsoluteOffset = function (el) {
  var x=0, y=0;
  while (el) {
    x += el.offsetLeft;
    y += el.offsetTop;
    el = el.offsetParent;
  };
  return {x:x,y:y};
}

myImg.onclick = function(evt) {
  var offset, x, y;
  offset = getAbsoluteOffset(this);
  var x = evt.pageX - offset.x;
  var y = evt.pageY - offset.y;
  alert('x: ' + x + '\ny: ' + y);
};

关于javascript - 使用相对定位在图像上创建标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8477861/

相关文章:

javascript - 将 php 2d 数组传递给 Javascript 并尝试使用 json_encode() 进行解析时会抛出未捕获的类型错误

javascript - jQuery 使用动态创建的按钮切换动态创建的表中的下一行

javascript - react : state object property is not updating

javascript - 如何在 jQuery 中确定和设置窗口的高度和滚动位置?

javascript - html 中的嵌套表单

php - 使用 PHP 在 HTML 邮件中应用 CSS

html - 如何在子组件 scss 文件中覆盖 main.component.scss 中的 css

javascript - 如果单击按钮,如何清除我的输入,同时如果输入为空,如何使按钮不可单击?

javascript - 阻止直接访问 js、css 文件但允许从 index.html 访问?

javascript - 从 html 文本中获取数字,但它们显示为正方形