创建带有滚动条的下拉列表

create dropdown list with scrollbar

本文关键字:下拉列表 滚动条 创建      更新时间:2023-09-26

我有一个HTML下拉列表与列表的选项。当用户单击下拉列表时,应该看到前五个带有滚动条的选项。我想用JavaScript和CSS实现这一点。因为我是新的这些,请建议我如何显示下拉列表与滚动条,以便能够滚动并从下拉列表中选择一个选项。下面是我的HTML代码:

<html>
<body>
<select>
      <option value="one">Option1</option>
      <option value="two">Option2</option>
      <option value="three">Option3</option>
      <option value="four">Option4</option>
      <option value="five">Option5</option>
      <option value="siz">Option6</option>
      <option value="seven">Option7</option>
      <option value="eight">Option8</option>
    </select>
</body>
</html>
使用上面的html代码,当用户单击下拉列表时,所有选项都可以看到,而不需要滚动条。我想用滚动条显示前五个选项

试试我添加到jsfiddel的https://jsfiddle.net/Ltkpshm9/示例或者直接使用

<select name="select1" onmousedown="if(this.options.length>5){this.size=5;}" onchange='this.size=0;' onblur="this.size=0;">
  <option value="one">Option1</option>
  <option value="two">Option2</option>
  <option value="three">Option3</option>
  <option value="four">Option4</option>
  <option value="five">Option5</option>
  <option value="siz">Option6</option>
  <option value="seven">Option7</option>
  <option value="eight">Option8</option>
</select>

您可以使用html和css来做到这一点。您需要创建一个div,它将包含您的按钮以及"下拉"div内的链接列表。在实际的css下拉div中,您应该指定一个max-height来调整要显示的链接数量,以及overflow:auto来使其可滚动。包括图片的截图,下面是一个使用HTML和内联CSS的例子:

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
    .dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}
.dropdown {
    position: relative;
    display: inline-block;
}
.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    max-height: 200px;
    overflow: auto;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}
.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}
.dropdown-content a:hover {background-color: #f1f1f1}
.dropdown:hover .dropdown-content {
    display: block;
}
.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
</style>
</head>
<body>
<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <a href="#">Option 1</a>
    <a href="#">Option 2</a>
    <a href="#">Option 3</a>
    <a href="#">Option 4</a>
    <a href="#">Option 5</a>
    <a href="#">Option 6</a>
    <a href="#">Option 7</a>
    <a href="#">Option 8</a>
  </div>
</div>
</body>
</html>

*另外,我刚刚意识到我创建了一个带有链接的示例,而您的示例使用了option元素,但应该适用相同的概念。只需编辑下拉菜单内容类的css,使其包含选项:

.dropdown-content a, option {//same css here}