JQuery Offset返回2个不同的结果

时间:2014-01-19 22:57:43

标签: javascript jquery html5 offset

我一直在努力争取这个时间超过我承认的时间。我正在尝试使用jQuery Offset在页面上放置一些元素,但即使我传递了SAME偏移值,渲染值也会大不相同。我的jQuery代码如下所示:

init: function (element, options) {
    var that = this,
    $field = $(element),

    ...

    var offset = $field.offset();
    that.ghostElement.offset({ top: offset.top, left: offset.left });
    that.suggestionsContainer.offset({ top: offset.top + $field.height(), left: offset.left });

但html呈现如下:

<span class="autosuggest-ghost" style="top: 48px; left: 30px;"></span>

<div class="autosuggest-suggestions" style="top: 262px; left: 263.5px; display: block;">       
    <ul>
        <li><a blah...</a></li>
    </ul>
</div>

有人会认为autosuggest建议会是最高的:48 + 40,左:30但是由于某种原因,它会更大。任何帮助将不胜感激。

修改


如所示,Html元素彼此相邻,但是没有不同的父母; autosuggest-ghost有一个位置:绝对,autosuggest-suggestions有一个位置:绝对。这是因为autosuggest-suggestions需要浮动页面上的其他元素。

1 个答案:

答案 0 :(得分:0)

offset()是相对于文档的,所以数字是准确的,但是以奇怪的方式表示......这一切都取决于你如何设置其余的元素和CSS。 Position()相对于父对象。但如果你不完全确定你的CSS会发生什么,那么这仍然会导致一些问题。