我在通过向一个获得一个网页上的“ 模式窗口 ” div
CSS属性position
来fixed
。 该div
包含输入字段。 特别是,我使用的是从jQueryUI的 自动完成小部件 。 有两个主要问题:
1)首先是,由于div有一个固定的位置,当你向下滚动网页时,自动完成建议不显示固定的,而是被上下移动与页面。 您可以在此看到,问题Codepen我用一个例子,其中从jQuery的网站与城市名称自动完成。
2)第二个问题是,从自动完成的建议在页面的左上角示出和未正下方的输入字段。 不幸的是,我试图在Codepen重现这个问题,但我不能。
我敢肯定,这个问题是由于CSS,特别是由jQuery的UI提供了这样的样式属性。 也许这个问题可以通过使用来解决位置选项的自动完成构件的。
我应该定义和怎么样的CSS属性?
PS:我在使用中提供的主题http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css 。
望着jQuery UI的图书馆,我看到在<ul>元素被用来显示的建议。 jQuery UI的缺省到HTML文档,而不是追加该元素在<div>(用作“模式窗口”)的文本的输入 。
然而,文档显示该选项appendTo配置哪个元素自动完成<UL>应附加到。 它使用jQuery的appendTo()
函数。 http://jqueryui.com/demos/autocomplete/#option-appendTo
所以,我包括一个div来包含建议:
<input type="text" id="myInput" />
<div id="container">
</div>
而在autocomplete()
函数我添加的选项:
appendTo: "#container"
然后,我添加了下面的CSS
#container {
display: block;
position:relative
}
.ui-autocomplete {
position: absolute;
}
就这样!
确保只阅读@ Riapp的回答后加载的jQuery一个版本,一个我发现了这个UI的,我打了四周,可以看到,你需要配套的版本号,从来没有太多....
否则,自动完成将是一个绝对的,飞到顶。
<script type="text/javascript"
src="https://code.jquery.com/ui/1.11.3/jquery-ui.min.js"></script>
<link rel="stylesheet" type="text/css"
href="https://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css" />
有同样的问题。 删除jquerUI基地的主题,卸载jQueryUI的库,然后重新安装jQueryUI的,现在工作得很好。 不知道你正在使用的,但我在MVC4这么多的错误,我想自杀。 祝好运。
编辑:这是真正的问题
在寻找一个旧的项目,看看是否被自动完成工作,我们发现,许多在旧项目的样式都不在较新的。 不知道如果我删除他们,但无法想象这样做。 我所要做的就是复制和粘贴那些来自我的新项目中缺少的类,一切都恢复正常。 我认为有人蓄意破坏我的项目。
文章来源: JqueryUi Autocomplete shown in wrong place when using input field in div with position:fixed