jquery - 在滚动容器 div 内时的多选下拉问题

标签 jquery html css

我希望 Multiselect Dropdown float 在其容器(滚动的 div)上,就像常规选择一样。

我试过更改 div 溢出选项,但这会导致其中的其他元素行为不当(即,它们显示,而不是触发滚动)。

这个问题之前已经完美暴露了:

Multiselect Dropdown z-index not working inside a scroll container div

...但作者对似乎摆脱溢出的答案感到满意。

我对上一个链接的代码稍作修改,在所有内容下方添加了第二个常规选择。它必须在 div 向下滚动时显示,而多选应该 float ,忽略溢出设置。

这可能吗?

这是代码(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
          });
        });

关于jquery - 在滚动容器 div 内时的多选下拉问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55816849/

相关文章:

jQuery只读属性问题

javascript - Jquery Accordion 默认不折叠

javascript - 从左侧滑出时如何将 "slow effect"添加到我的幻灯片菜单?

html - 如何让div向右增长而不是向下增长

html - 当仅屏幕高度发生变化时,如何防止绝对居中放置的模态触摸浏览器顶部

用于快速转换的 D3.js SVG 投影

Jquery - 基于组合框的过滤列表框

javascript - 获取 Jquery 数据表中的总行数

html - 使用媒体查询将 h3 更改为 h1

html - CSS 最初未加载