如何html+css+js模拟select+option下拉菜单
HTML下拉菜单通常使用select和option元素组合实现,CSS可以用来样式化下拉菜单,JS可以用来实现下拉菜单的交互和动态更新。
以下是一个简单的HTML+CSS+JS下拉菜单实现示例:
HTML部分:
<div class="dropdown">
<button class="dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
请选择
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">选项1</a>
<a class="dropdown-item" href="#">选项2</a>
<a class="dropdown-item" href="#">选项3</a>
</div>
</div>
CSS部分:
.dropdown-toggle {
display: block;
width: 100%;
padding: .375rem .75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
border-radius: .25rem;
transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.dropdown-toggle:focus {
outline: 0;
box-shadow: 0 0 0 .2rem rgba(0,123,255,.25);
border-color: #80bdff;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 10rem;
padding: .5rem 0;
margin: .125rem 0 0;
font-size: 1rem;
color: #212529;
text-align: left;
list-style: none;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #c8ced3;
border-radius: .25rem;
}
.dropdown-menu.show {
display: block;
}
.dropdown-item {
display: block;
width: 100%;
padding: .25rem 1.5rem;
clear: both;
font-weight: 400;
color: #212529;
text-align: inherit;
white-space: nowrap;
background-color: transparent;
border: 0;
}
.dropdown-item:focus, .dropdown-item:hover {
color: #16181b;
text-decoration: none;
background-color: #f8f9fa;
}
JS部分:
$('.dropdown-toggle').on('click', function() {
$('.dropdown-menu').toggleClass('show');
});
$('.dropdown-item').on('click', function() {
$('.dropdown-toggle').text($(this).text());
$('.dropdown-menu').removeClass('show');
});
通过以上代码,可以实现一个基本的HTML+CSS+JS下拉菜单。当点击下拉菜单按钮时,JS代码会添加或移除下拉菜单的show类,实现下拉菜单的显示或隐藏;当点击下拉菜单的选项时,JS代码会将选项的文本内容设置为下拉菜单按钮的文本内容,并移除下拉菜单的show类,实现选项的选择和下拉菜单的隐藏。
原文地址: https://www.cveoy.top/t/topic/bJBL 著作权归作者所有。请勿转载和采集!