【发布时间】:2011-07-05 13:41:30
【问题描述】:
我已经创建了一个测试用例,请查看它,因为它说明了我的问题:http://jsfiddle.net/jAD2W/6/(感谢@patrick dw 简化了示例)
为了完整起见,此代码也已添加到本文底部。
基本上,每当我获得 span 元素或内联 div 元素的偏移量时,top 的值都会大于应有的值。
当您将鼠标悬停在示例中的图像上时,它应该保持在该绝对位置。不幸的是,它似乎被下移了。
是什么导致它向下移动?去掉span元素就解决了,说明是span元素的inline属性引起的。不幸的是,我确实需要将整个内容包含在 span 或内联 div 元素中。
来自 jsFiddle 的代码(html、javascript、css):
<html>
<body>
<div id='showArea'>
<span id="containerElement1">
<img src='http://twitpic.com/show/thumb/5lkmac.jpg' >
</span>
</div>
</body>
</html>
$('#containerElement1').mouseenter(function(e) {
var offset = $(this).offset();
$(this).css({
'position': 'absolute',
'top': offset.top,
'left': offset.left
});
});
img {
width:250px;
height:150px;
}
span {
width:250px;
height:150px;
}
【问题讨论】:
-
请将相关代码放入您的问题中。 StackOverflow 旨在成为一个独立的问题和答案存储库。您的问题可能会对未来的读者有所帮助,但如果 jsFiddle 已关闭或您的 fiddle 不再存在,则无法引用原始问题。
-
@patrick dw,点了,我添加了来源。
-
@tom 可能是因为当你给它一个 left 和 top 时,这就是绝对位置的作用?
-
@tom,如果我将鼠标悬停在第一个元素上,它就会消失。你希望在 mouseenter 上发生什么?
-
感谢@patrick dw,现在链接到您改进的进一步简化版本(也不需要锚)@Nicola Peluchetti,预期行为是图像保持在完全相同的位置(而其他图像确实会移动,因为该图像在其前面不再是静态的)。
标签: javascript jquery css-position