应该是一个简单的,但我的搜索提出了不相关的问题。
基本上我已经为 ASP.Net 创建了一个自定义 DropDown CheckBoxList。
它使用像这个简化示例一样的嵌套 Div(列表/表格本身由 ASP.Net CheckBoxList 生成):
<DIV class="dropDownComboxBoxList">
<DIV class="dropDownControl">
<DIV class="dropDownLeft">
<INPUT class="dropDownEdit" type="text" >
</DIV>
<DIV class="dropDownRight">
<IMG class="img-swap" src="/Images/DropDown_off.gif">
</DIV>
</DIV>
<DIV style="MIN-WIDTH: 300px; DISPLAY: none; MAX-HEIGHT: 150px" class="dropDownDiv">
<TABLE style="WIDTH: 100%; HEIGHT: 40px" id="checkBoxList" class="dropDownTable">
<TBODY>
<TR>
<TD class="firstCheck">
<INPUT class="dropDownCheck" type="checkbox">
<LABEL class="dropDownLabel">All</LABEL>
</TD>
</TR>
<TR class="checkSel">
<TD>
<INPUT class="dropDownCheck" type="checkbox">
<LABEL class="dropDownLabel">Item 0</LABEL>
</TD>
</TR>
</TBODY>
</TABLE>
</DIV>
</DIV>
控件显示如下:
问题是当 Text 控件位于屏幕中间下方时,弹出 Div 应该出现在 Text 控件上方,就像任何其他标准下拉菜单一样,例如:
在 JQuery/CSS 中执行此操作的最简单方法是什么?
更新 - 我的第一次蹩脚测试尝试看起来像这样(但它跳起来的视觉效果很糟糕):
function DropDown(id, idt)
$(id).toggle('fast', function () {
if ($(id).css('display') != 'none') {
var pos = $(id).height() + $(idt).height();
$(id).css("margin-top", -pos+"px");
}
});
});