我一直在努力争取这个时间超过我承认的时间。我正在尝试使用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需要浮动页面上的其他元素。
答案 0 :(得分:0)
offset()是相对于文档的,所以数字是准确的,但是以奇怪的方式表示......这一切都取决于你如何设置其余的元素和CSS。 Position()相对于父对象。但如果你不完全确定你的CSS会发生什么,那么这仍然会导致一些问题。