jquery - 在滚动容器 div 内时的多选下拉问题
问题描述
我希望 Multiselect Dropdown 浮动在其容器(滚动 div)上,就像常规选择一样。
我尝试更改 div 溢出选项,但这会导致其中的其他元素行为不正确(即,它们显示,而不是触发滚动)。
这个问题之前已经完美暴露了:
...但作者对似乎摆脱溢出的答案感到满意。
我对上一个链接的代码进行了轻微修改,在所有内容下方添加了第二个常规选择。它必须在 div 向下滚动时显示,而多选应该浮动,忽略溢出设置。
那可能吗?
这是代码(95% 只是上面帖子的副本):
http://jsfiddle.net/danielnh/1pwLncmr/2/
#scrollMe {
height:150px;
background-color:yellow;
overflow-y: scroll;
overflow-x:hidden;
padding:20px;
}
..
<div id="scrollMe" class="col-md-12">
<select id="multiSelect" class="form-control multiselect" multiple="multiple">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<br>
<br>
<select class="form-control">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<br><br><br><br>
<select class="form-control">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
</div>
解决方案
选项 div 需要固定或绝对位置,才能忽略溢出。
看看下面并阅读评论,我在Multiselect
函数中添加了两行代码。
$('#multiSelect').multiselect({
includeSelectAllOption: true,
buttonWidth: '200px',
}).parent().find(".dropdown-toggle").click(function(){
// MyCode
// handle the position of the fixed div
var offSet = $(this).offset();
$(this).parent().find(".multiselect-container").css({
position:"fixed",
top:offSet.top + $(this).outerHeight(),
left: offSet.left
});
});
推荐阅读
- reactjs - EXPO 错误,我想构建应用程序。但是“SSL_connect 返回=1 errno=0 state=error:证书验证失败”
- android - 尝试使用 RecyclerView 创建时间选择器
- javascript - 反应导航 v5 自定义抽屉路线
- python - math.exp() 为浮点数返回 0
- android - 在不使用 BroadCastReceiver 的情况下在 Android 中阅读短信
- ios - 在 iOS 中配置多个方案会导致风格不匹配
- c++ - 使用同一类中的方法重新分配字段
- spring - 在 spring-boot 从 1.5.6.RELEASE 升级到 2.2.4.RELEASE 之后,spring 请求将 JdbcTemplate bean 定义为 Autowire JdbcTemplate
- sapui5 - 你能在 SAPUI5 的一个列表中加入两个 oModel
- android - 禁用 WAL 模式