如何在 IE 的选择框中获取水平滚动条?

Posted

技术标签:

【中文标题】如何在 IE 的选择框中获取水平滚动条?【英文标题】:How to get horizontal scroll bar in select box in IE? 【发布时间】:2011-12-16 14:21:50 【问题描述】:

我尝试实现以下代码

<div class="functionitem" id="selector_cat">
  <select name="sets" style="overflow:auto;width:100px;">
    <option value="general">happy holiday</option>
    <option value="garden">Garden</option>
    <option value="Lunch">Lunch</option>
    <option value="nice day">A nice day out with my friend on the beach</option>
  </select>
</div>

第4个选项菜单的右边部分不见了,谁能告诉我在IE中使水平滚动工作,如果不能,有没有其他方法可以工作,谢谢!

抱歉有任何混淆,我想要的是下拉框中的水平滚动条,我希望它固定宽度 100px;但我想显示整个内容,我假设用户如果想在下拉选择框中看到整个句子,可以向右滚动,

【问题讨论】:

谁能帮帮我,非常感谢! 【参考方案1】:

我不太确定你想要达到什么目的。这只是一个select 列表。只需删除您的样式,它就会自动根据您的内容调整大小。

编辑

使包含列表的容器滚动。注意:它的可用性有些问题,所以我会在页面上实现类似的东西之前寻找另一种解决方案。

<div id="selector_cat"> 
    <select name="sets">
        <option value="general">happy holiday</option>
        <option value="garden">Garden</option>
        <option value="Lunch">Lunch</option>
        <option value="nice day">A nice day out with my friend on the beach</option>
    </select>
</div>
#selector_cat
    width: 100px; 
    overflow: auto;

【讨论】:

谢谢,抱歉我的描述,我想要的是下拉框中的水平滚动条,我希望它固定宽度 100px;但我想显示整个内容,如果用户想在下拉选择框中查看整个句子,我假设用户可以向右滚动,谢谢。 我根据您的反馈进行了编辑。您使包含列表的容器滚动。请注意,它的可用性有些问题,所以我会在页面上实现类似的东西之前寻找另一种解决方案。 谢谢,您指的是哪种解决方案? @smith 选择框的水平滚动。但是,如果您的页面空间不足,也许它会工作得很好:)【参考方案2】:

用 JQuery 试试:

<div id='test' style="overflow-x:scroll; width:120px; overflow: -moz-scrollbars-horizontal;">
<select id='mySelect' name="mySelect" size="5">
    <option value="1">one two three four five six</option>
    <option value="2">seven eight</option>
    <option value="3">nine ten</option>
    <option value="1">one two three four five six</option>
    <option value="2">seven eight</option>
    <option value="3">nine ten</option>
    <option value="1">one two three four five six</option>
    <option value="2">seven eight</option>
    <option value="3">nine ten</option>
    <option value="1">one two three four five six</option>
    <option value="2">seven eight</option>
    <option value="3">nine ten</option>
</select>
<div id="divv" style='font-size: 1px'>&nbsp</div>
</div>

<script>
    $('#divv').css('width', $('#mySelect').outerWidth());
    $('#mySelect').css('width', $('#test').outerWidth());
    $( "#test" ).scroll(function() 
        $('#mySelect').css('width', $(this).outerWidth() + $(this).scrollLeft());
    );
</script>

【讨论】:

你必须有一个 javascript hack,它需要一个 3rd 方库来添加像滚动条这样简单的东西?! WTF?!

以上是关于如何在 IE 的选择框中获取水平滚动条?的主要内容,如果未能解决你的问题,请参考以下文章

JQGrid当autowidth = true时,如何删除恼人的水平滚动条? (在IE中)

疯狂的 IE7 水平滚动条

如何在winforms文本框中获取默认垂直滚动条的位置

修复Extjs6.X在IE8下表格水平滚动条无法滚动的BUG

如何判断有没有出现滚动条

CSS 禁止滚动条(隐藏或屏蔽IE滚动条的几种常用方法)