Javascript 将鼠标悬停在其他元素下方
我有一种情况,我想提供一些与工具提示相关的上下文帮助…但是,我有的元素有时位于绝对位置的元素下面 虽然我意识到这可能是不可能的,但我在想,在顶层元素的下面,有没有人去询问元素 我只是不知道该怎么做。我不介意使用css或javascript,但是如果能在正确的方向上提供帮助,我将不胜感激 请参见下面横条上方绝对定位div(带红色涂鸦的灰色框)的图像 请注意,绿色条是相对位置,而单个条也是绝对位置Javascript 将鼠标悬停在其他元素下方,javascript,jquery,css,Javascript,Jquery,Css,我有一种情况,我想提供一些与工具提示相关的上下文帮助…但是,我有的元素有时位于绝对位置的元素下面 虽然我意识到这可能是不可能的,但我在想,在顶层元素的下面,有没有人去询问元素 我只是不知道该怎么做。我不介意使用css或javascript,但是如果能在正确的方向上提供帮助,我将不胜感激 请参见下面横条上方绝对定位div(带红色涂鸦的灰色框)的图像 请注意,绿色条是相对位置,而单个条也是绝对位置 您可以使用jQuery的位置,尽管它最终会非常冗长: var pos=$(“myDiv”).posit
您可以使用jQuery的位置,尽管它最终会非常冗长:
var pos=$(“myDiv”).position()代码>
然后通过以下方式确定位置:
控制台日志(位置左侧、位置顶部、位置右侧、位置底部)
请阅读此处了解更多信息:
然后您可以检查.mousemove
是否在div的范围内。请阅读此处:
然而,对于一般的使用来说,这很可能太复杂了。您必须检查每个子div中是否有鼠标点击;这是一把小提琴。命中测试:
function inside(a, x, y) {
var l = a.offset().left;
var t = a.offset().top;
var r = l + a.outerWidth(true);
var b = t + a.outerHeight(true);
return l <= x && x <= r &&
t <= y && y <= b;
}
顶部的元素是否需要鼠标事件?不需要,也不需要。需要注意的是,我需要对IE9及以上版本的支持…指针事件我认为这里不支持,实际上只是看看js。我在一个页面上有400个这样的条,这些条的内部div的范围为0到15,因此您可以想象提供if/else来检查每个div是否可行:)。你能提供一些不需要if/else逻辑的替代逻辑吗?传奇!为了满足我的需要做了一些小的调整。。。。其中一个方法是迭代与灰色容器相同容器的段部分,而不是我在页面上的4000段。我相信你会这么做,但你只是在向我说明这个概念!非常感谢!!!
$(".foo").on("mousemove", function(e) {
var hit = false;
var self = $(this);
$(".x, .y").each(function(ignore, d) {
if (!hit) {
if (inside($(d), e.pageX, e.pageY)) {
self.attr("title", $(d).attr("title"));
hit = true;
}
else {
self.attr("title", "");
}
}
});
});