【发布时间】:2011-09-09 10:43:25
【问题描述】:
我将创建一个选择“套索”,用户可以使用它来选择表格的一部分。我认为在区域上放置一个 div 比尝试操纵单元格边框要容易得多。
如果您不明白我的意思,请打开电子表格并拖过一个区域。我希望 div 与单元格边框完美对齐。
我非常了解如何执行此操作,但如何获得表格单元格 (td) 的 (x,y) 坐标(屏幕位置)?
【问题讨论】:
标签: javascript jquery html html-table coordinates
我将创建一个选择“套索”,用户可以使用它来选择表格的一部分。我认为在区域上放置一个 div 比尝试操纵单元格边框要容易得多。
如果您不明白我的意思,请打开电子表格并拖过一个区域。我希望 div 与单元格边框完美对齐。
我非常了解如何执行此操作,但如何获得表格单元格 (td) 的 (x,y) 坐标(屏幕位置)?
【问题讨论】:
标签: javascript jquery html html-table coordinates
你可以使用 pageX 和 pageY 来追踪鼠标光标 x , y
$("#your_div").mouseover(function(e))
{
x = e.pageX;
y = e.pageY;
}
您可以设置 div 边框以在鼠标悬停时突出显示 div
$("#your_div").css("border","1px solid black");
这将显示当前的 div 可选效果...
如果 div 是
position:fixed 然后你可以读取它的 left 和 top 属性
希望对你有帮助
【讨论】:
嘿,你应该可以这样做(jsFiddle):http://jsfiddle.net/jackrugile/YKHkX/
$('td').hover(function(){
var xPos = Math.floor($(this).offset().left);
var yPos = Math.floor($(this).offset().top);
});
在我看来,Math.floor 摆脱了疯狂的小数并使其更易于使用。希望对您有所帮助!
【讨论】:
【讨论】:
.position() 仍然只返回 top 和 left。在我的示例中,后面的代码行将bottom 和right 添加到从.position() 返回的对象中,方法是将.height() 和.width() 分别添加到top 和left。我这样做只是为了方便。
对于那些不想使用jquery的人:
var coordinates = td.getBoundingClientRect();
console.log(coordinates.left, coordinates.top, coordinates.right, coordinates.bottom);
【讨论】: