Javascript 如果“自动完成”位于页面底部,则“自动完成”选项浮动在文本区域上方
我们正在使用此自动完成插件: 但是,当输入字段位于页面底部时会出现问题。“自动完成”列表(在您开始键入时显示的列表)会移动其位置,这样,它就不会下拉文本框,而是浮动在文本框上方。如果清单上有很多项目也没关系。但是,如果选项很少且高度不够,则输入框和自动完成框之间存在巨大的差距 为了让它更清晰,以下是图片: 有人知道如何修改代码以避免这种情况发生吗?或者,无论发生什么,自动完成始终保持在输入框的底部 我认为这是jQuery的一部分:Javascript 如果“自动完成”位于页面底部,则“自动完成”选项浮动在文本区域上方,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,我们正在使用此自动完成插件: 但是,当输入字段位于页面底部时会出现问题。“自动完成”列表(在您开始键入时显示的列表)会移动其位置,这样,它就不会下拉文本框,而是浮动在文本框上方。如果清单上有很多项目也没关系。但是,如果选项很少且高度不够,则输入框和自动完成框之间存在巨大的差距 为了让它更清晰,以下是图片: 有人知道如何修改代码以避免这种情况发生吗?或者,无论发生什么,自动完成始终保持在输入框的底部 我认为这是jQuery的一部分: // reposition the results div a
// reposition the results div accordingly to the search field
function repositionResultsDiv()
{
// get the field position
var sf_pos = acSearchField.offset();
var sf_top = sf_pos.top;
var sf_left = sf_pos.left;
// get the field size
var sf_height = acSearchField.height();
// var sf_width = acSearchField.width();
var sf_width = 285;
// apply the css styles - optimized for Firefox
acResultsDiv.css("position","absolute");
acResultsDiv.css("zIndex", 1000);
acResultsDiv.css("left", sf_left - 2);
acResultsDiv.css("top", sf_top + sf_height + 5);
acResultsDiv.css("width", sf_width - 2);
}
显然,顶部偏移值应该更大(以便将其进一步向下推),但它似乎无法正确计算。您可以控制“位置”属性。你可以用它做复杂的事情,也可以做简单的事情
请注意,jQuery在默认情况下所做的是尝试找到一个不冲突的位置。如果你改变了它,请确保不要让它变得更糟。我已经找到了问题所在。显然,在该特定页面上,某些内容是在页面加载后生成的,因此偏移量值不考虑额外内容的高度 作为一种解决方案,我临时使用了一个不同的ID,并在jQuery上设置了一个条件,以便在检测到该ID时添加一个特定的高度。我想我需要使用一些实时方法,或者在加载autosuggest脚本之前先加载那部分内容,但现在这个临时修复就可以了