Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery将元素放置在鼠标上方的相邻位置-固定可滚动的div_Javascript_Jquery_Css_Scrollbar_Onmouseover - Fatal编程技术网

Javascript jQuery将元素放置在鼠标上方的相邻位置-固定可滚动的div

Javascript jQuery将元素放置在鼠标上方的相邻位置-固定可滚动的div,javascript,jquery,css,scrollbar,onmouseover,Javascript,Jquery,Css,Scrollbar,Onmouseover,所以我摆弄了这个 结果并不理想。代码基于 但是代码并没有像预期的那样工作。我可以根据绝对位置(例如页眉的减法偏移量)确定如何重新定位偏移量。但我遇到的问题是滚动定位。一旦你开始滚动,位置就错了。有人知道它的解决方案吗?由于某种原因,当您滚动文档时,jQuery中的offset().top值会发生变化。相反,只需使用标准HTML元素属性offsetLeft和offsetTop: 工作示例: 代码: 由于某些原因,当您滚动文档时,jQuery中的offset().top值会发生变化。相反,只需使用

所以我摆弄了这个

结果并不理想。代码基于
但是代码并没有像预期的那样工作。我可以根据绝对位置(例如页眉的减法偏移量)确定如何重新定位偏移量。但我遇到的问题是滚动定位。一旦你开始滚动,位置就错了。有人知道它的解决方案吗?

由于某种原因,当您滚动文档时,jQuery中的
offset().top
值会发生变化。相反,只需使用标准HTML元素属性
offsetLeft
offsetTop

工作示例:

代码:


由于某些原因,当您滚动文档时,jQuery中的
offset().top
值会发生变化。相反,只需使用标准HTML元素属性
offsetLeft
offsetTop

工作示例:

代码:


不想回答我自己的问题,但请看这里:

基本上,问题是元素插入到了错误的位置。偏移量与带有滚动条的页面不正确相关。这可以通过在父窗体上添加元素来解决(例如,如果您想使某些按钮可见)。或


它还修复了我遇到的元素重叠问题。假设有一个固定位置的元素E1和一个绝对位置的元素E2。一个是左菜单,E2是内容。当您将鼠标移到E2内容中的某个div上,并希望该div与左侧菜单E1重叠时,您需要确保该div不在内容中,因为您似乎无法重叠到E2的固定同级中。

不想回答我自己的问题,但请参见此处:

基本上,问题是元素插入到了错误的位置。偏移量与带有滚动条的页面不正确相关。这可以通过在父窗体上添加元素来解决(例如,如果您想使某些按钮可见)。或


它还修复了我遇到的元素重叠问题。假设有一个固定位置的元素E1和一个绝对位置的元素E2。一个是左菜单,E2是内容。当您将鼠标移到E2内容中的某个div上,并希望该div与左侧菜单E1重叠时,您需要确保该div不在内容中,因为似乎无法重叠到E2的固定同级菜单中。

,像这样的例子总是一个很好的机会来思考何时确实需要jQuery(即使用offsetLeft而不是jQuery的offset函数)。另一个例子是使用this.className而不是$(this.attr('class')…我必须自己更正:这不起作用。简单的老javascript offsetTop函数给了我一个完全错误的位置,当我在更复杂的网页中使用它时,它与一些不同的父元素相关。然后请发布您的代码,或者创建一个小提琴来显示这一点。我很乐意,但我已经在这个问题上花了太多时间,我永远也不会得到选票。我发布了解决问题(以及其他问题)的解决方案,我将不得不再次查看。但只有当我有时间的时候…-看起来很有希望的是,它没有浮动的bug,正如我的示例中所示。例如,将鼠标悬停在第二个红色物体上,然后滚动-文本在消失之前会随着滚动滚动一点。顺便说一下,这样的例子总是一个很好的机会来思考何时确实需要jQuery(即使用offsetLeft而不是jQuery的offset函数)。另一个例子是使用this.className而不是$(this.attr('class')…我必须自己更正:这不起作用。简单的老javascript offsetTop函数给了我一个完全错误的位置,当我在更复杂的网页中使用它时,它与一些不同的父元素相关。然后请发布您的代码,或者创建一个小提琴来显示这一点。我很乐意,但我已经在这个问题上花了太多时间,我永远也不会得到选票。我发布了解决问题(以及其他问题)的解决方案,我将不得不再次查看。但只有当我有时间的时候…-看起来很有希望的是,它没有浮动的bug,正如我的示例中所示。例如,您将鼠标悬停在第二个红色物体上,然后滚动-文本将随着滚动滚动滚动一点,然后消失。我已更新了您引用的原始问题的答案,现在它也应处理您的案例:)我已更新了您引用的原始问题的答案,现在它也应处理您的案例:)
$("#m1").mouseover( function(){
    $("#o1").css({ "left": this.offsetLeft, "top":this.offsetTop }).show();
})
.mouseout( function(){
    $("#o1").hide();
});



$("#m2").mouseover( function(){
   $("#o2").css({ "left": this.offsetLeft, "top":this.offsetTop }).show();
})
.mouseout( function(){
    $("#o2").hide();
});