我在一个工具中允许人们使用jQuery双击并在HTML页面的任何位置留下消息。它已经成为消息定位的绊脚石。确定鼠标点击位置的位置
的代码,我此刻的测试:
$('body').bind('dblclick', function(e) {
var message = $('<div class="message">Form here</div>').css({
'left' : e.pageX,
'top' : e.pageY
});
$(this).append(message);
});
这将创建在鼠标点击的位置,一个新的“消息”。虽然这在一定程度上起作用,但只要浏览器窗口重新调整大小,“消息”就会移出位置。由于我最终希望保存这些消息(并检索它们),因此将它们加载到每个浏览器上的每个用户的不同位置并不理想。即使该页面使用媒体查询,我也希望邮件附加到页面布局。
我对这个问题的理解是,我需要定位相对于用户点击的最近元素的消息。问题是。我如何?
任何提示或提示将不胜感激。
更新04/07/11
大多数的答案下面我有过的是不是真的,我追求的。我已经上传了example of my page to JSfiddle向您展示我的设置。这里的问题是使消息附加在相对位置,这样当浏览器窗口重新调整大小时,消息随着内容一起移动。
例如。如果我在页面的第二段添加消息,不管浏览器/设备宽度如何,我都会将该消息粘贴到该段落。据我可以告诉我需要建立最近的块级元素(或具有ID或类的元素),可以用来定位消息相对于。
希望清除问题&感谢您的所有建议。
忽略我的答案,我的dicklexic屁股没有正确地阅读这个问题。你想要做的是将交叉元素插入HTML页面的最上面的元素。不是从浏览器计算X和Y,而是从最上面的元素中完成,这应该表示该框在调整大小时移动。 –