jQuery 元素坐标

标签 jquery mouseevent

我有以下代码

 $(document).ready(function(){
        $('img').mousedown(function(event) {
            $('p').text('Mouse Clicked x =' + event.screenX + ' Y = ' + event.screenY);
        });
    });

如果他们单击图像,它可以很好地找到光标的屏幕坐标,但我实际上想要的是他们单击的图像内的坐标(左上角为 1,1,无论图像位置如何)页面),但除了将图像放置在它自己的页面中并使用 pageX/pageY 之外,我看不到这样做的任何方法......或者我看错了

最佳答案

据我所知,以下代码有效:

$('img').mousedown(function(e) {
    var offset = $(this).offset(),
        imgLeft = e.pageX - offset.left,
        imgTop = e.pageY - offset.top;

    $('p').text('Mouse clicked x = ' + imgLeft + ' Y = ' + imgTop);
});

See jsFiddle .

关于jQuery 元素坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4094843/

相关文章:

javascript - Requirejs domReady 插件 vs Jquery $(document).ready()?

javascript - 使用 JQuery 将 Div 的背景图像旋转 90 度

javascript - 通过 Web 方法在 Select2 (4.0.3) 中提供分页的点播列表

javascript - 具有公共(public)值的单个文件中的多个下划线模板

jquery - 当元素内的文本使用 jquery 更改时调用函数?

javascript - Reactjs、Rxjs 和鼠标事件

java - 为 JToolBar 添加 MouseListeners(事件被消耗?)

java - 无法在缅因州使用鼠标事件

actionscript-3 - 过滤器问题: sprite does not dispatch MouseEvents anymore

javascript - 如何使用 jQuery 在鼠标悬停时制作简单的淡入淡出效果或慢速动画