gpt4 book ai didi

jquery - 如何显示下拉列表 'above' 输入元素

转载 作者:行者123 更新时间:2023-11-28 10:20:44 25 4
gpt4 key购买 nike

我正在使用 jQuery Tokeninput用于显示音乐艺术家姓名自动完成列表的插件,通过 jsonp 传送。

一切正常,但是我需要在页面的固定页脚中输入内容,这当然意味着下拉列表本身超出了页面底部。

我想反转这种行为并让下拉列表出现在输入元素的“上方”,但我似乎找不到实现此目的的方法。

有什么想法吗?

最佳答案

我修改了 show_dropdown 函数来自动确定它应该显示在上方还是下方:

function show_dropdown() {
if (input_box.is(':focus')) {
var windowHeight = $(window).height();
var docViewTop = $(window).scrollTop();
var dropdownPosition = $(token_list).offset().top + $(token_list).outerHeight();
var availableSpace = windowHeight - (dropdownPosition - docViewTop)
var borderWidth = parseInt(dropdown.css('border-bottom-width'));

if (availableSpace >= (settings.maxHeight + 2 * borderWidth)) {
dropdown.css('bottom', '');
$('body').css('position', '');

dropdown.css({
'border-top-width': 0,
left: $(token_list).offset().left,
top: $(token_list).offset().top + $(token_list).outerHeight()
});
} else {
dropdown.css('top', '');

var bodyHeight = $('body').outerHeight();
var bodyTop = $('body').offset().top;
var bottom;

if ((bodyHeight + bodyTop) < dropdownPosition) {
bottom = dropdownPosition - (bodyTop + bodyHeight) ;
}
else {
bottom = (bodyTop + bodyHeight) - ($(token_list).offset().top + borderWidth);
}

dropdown.css({
'border-top-width': borderWidth,
'border-top-color': dropdown.css('border-bottom-color'),
'border-top-style': dropdown.css('border-bottom-style'),
'bottom': bottom,
'left': $(token_list).offset().left - parseInt($('body').css('margin-left')),
'position': 'absolute'
});
$('body').css({
'position': 'relative'
});
}
dropdown.css({
maxHeight: settings.maxHeight,
overflow: 'auto',
zIndex: settings.zIndex
}).show();
}
}

我还向 tokenInput 添加了一个 maxHeight 属性,并用它来检查空间和设置下拉列表的大小。

在这里试试:http://jsfiddle.net/colin_young/dvuHD/19/ (请注意,我的版本与普通版本相比有一些重大修改,我只是没有机会为它们创建拉取请求)。

然而,没有尝试确保上面有空间。假设是如果下方没有空间且上方也没有空间,那么您无能为力,尽管以输入元素为中心可能是一个很好的折衷方案。

关于jquery - 如何显示下拉列表 'above' 输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8068800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com