当前位置: 首页 > 面试题库 >

使用jQuery获取链接图像点击的准确位置

华景同
2023-03-14
问题内容

我正在开发一个允许通过单击直接在照片上标记的应用程序(例如Facebook,flickr等)。但是,我似乎无法为单击照片注册正确的坐标。问题在于,x坐标似乎是浏览器窗口(而不是照片)内单击的绝对x距离,而y坐标通常为负或难以置信的很小(顶部附近为负,底部附近为小)。这些是我在左上角附近单击时获得的值(应该注册为0或附近的值:“
x” =>“ 219”,“ y” =>“-311” … 219似乎正确测量距浏览器窗口左侧的距离,但该距离应在照片区域内)

我目前正在使用常规链接(链接包含其他相关的照片数据)捕获照片上的点击事件和坐标,并在将其传递到我的rails应用之前进行数学运算(在jQuery文档中使用了相同的计算)。我怀疑该方法与错误的值有很大关系,尽管我怀疑数学或某些CSS怪癖可能会出错。无论哪种情况,我绝对都感到困惑。

JS:

$(document).ready(function(){
clickTag();

});

function clickTag(){
   $("#taggable").click(function(e){
        var x = e.pageX - this.offsetLeft;
        var y = e.pageY - this.offsetTop;
        var url = $(this).attr("href");
        courl = url + '&x=' + x + '&y=' + y;
      $.ajax({
        type:"GET",
        url: courl,
        dataType:"script"
        });
        return false;
   }); 
}

CSS:

`<div class="content">
    <div id="image_container" style="position:relative;width:405px;float:left;height:600px;>
        <a href="/tags/new_xy?look_id=188&amp;photo_id=1150" id="taggable" style="position:relative;top:0;left:0px;"><img alt="taggable_image" src="taggable_image.jpg" /></a>
    <div class="tags" id="tags"></div>
    </div>
</div>`

问题答案:

为您的x和y尝试使用以下方法:

var x = e.pageX - $(this).offset().left;
var y = e.pageY - $(this).offset().top;

让我知道那是否行不通

编辑: 澄清-您直接从dom元素获得左和上偏移。我建议您使用jQuery offset()函数的原因是jQuery更有可能计算跨浏览器的正确位置。

编辑2: 能否请您将点击事件分配给图像,而不是链接。我有一个偷偷摸摸的怀疑,即该链接报告其顶部偏移量为所封装元素的底部…



 类似资料:
  • 下面是我正在尝试的代码 png是我保存在项目中的一个图像文件。首先,我搜索它,然后点击它。 任何人都可以帮助我如何实现这一点。任何帮助都将得到高度赞赏。

  • 我有一张地图,上面有很多自定义的大标记。现在,我希望允许用户在地图上创建路径(显示为折线,稍后保存为地理坐标对列表)。 如果用户单击地图,我可以使用地图的setOnMapClickedListener方法收集这些位置。但是如果用户点击一个标记(setOnMarkerClickedListener),我只能检索标记的位置(通常是标记的ancor的位置)。

  • 目前用户可以将图片上传到我的网站,图片的位置存储在MySQL表中。 当我使用SELECT函数调用图像时,它们是通过CSS Style background-image: url('image.jpg')加载的 目前,我使用了一个IF语句,将占位符图像放置在列“image\u URL”设置为NULL的任何行的位置。 但是,我的方法不适用于错误的链接(原始图像已被删除,或者由于某种原因,链接错误)它只

  • 我希望当我点击按钮时,我可以得到具体的img src,并在div classblock中显示img src。 HTML CSS JS 但是现在我面临的问题是获取img src。 所以我使用alert进行测试,结果是它什么都没有。

  • 我想在jQuery的一个警报中获得点击元素的文本。参见下面的示例https://jsfidle.net/pymd4n04/2/ 但当我单击第一次时,将显示空警报,而当我单击第二次时,将显示该值,但显示两次警报。并保持递增警报。 如有任何帮助,我们将不胜感激。 提前致谢

  • 我想从获取图像: