如何将下拉列表添加到浮动按钮
how to add a drop up list to floating button
我的 html 页面中有一个浮动按钮
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
right:40px;
background-color:#0C9;
color:#FFF;
border-radius:50px;
text-align:center;
box-shadow: 2px 2px 3px #999;
}
.my-float{
margin-top:22px;
}
.label-container{
position:fixed;
bottom:48px;
right:105px;
display:table;
visibility: hidden;
}
.label-text{
color:#FFF;
background:rgba(51,51,51,0.5);
display:table-cell;
vertical-align:middle;
padding:10px;
border-radius:3px;
}
.label-arrow{
display:table-cell;
vertical-align:middle;
color:#333;
opacity:0.5;
}
.my-float{
font-size:24px;
margin-top:18px;
}
a.float + div.label-container {
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.5s ease;
}
a.float:hover + div.label-container{
visibility: visible;
opacity: 1;
}
a.float:hover .user-req-list {
visibility: collapse;
}
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
right:40px;
background-color:#0C9;
color:#FFF;
border-radius:50px;
text-align:center;
box-shadow: 2px 2px 3px #999;
}
.my-float{
margin-top:22px;
}
.label-container{
position:fixed;
bottom:48px;
right:105px;
display:table;
visibility: hidden;
}
.label-text{
color:#FFF;
background:rgba(51,51,51,0.5);
display:table-cell;
vertical-align:middle;
padding:10px;
border-radius:3px;
}
.label-arrow{
display:table-cell;
vertical-align:middle;
color:#333;
opacity:0.5;
}
.my-float{
font-size:24px;
margin-top:18px;
}
a.float + div.label-container {
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.5s ease;
}
a.float:hover + div.label-container{
visibility: visible;
opacity: 1;
}
a.float:hover .user-req-list {
visibility: collapse;
}
<body>
<a class="float">
<i class="fa fa-plus my-float"></i>
</a>
<div class="label-container">
<div class="label-text">User Join Requests</div>
<i class="fa fa-play label-arrow"></i>
</div>
</body>
我想向此按钮添加一个下拉列表,这样当我在其上 press/hover 时,该列表将出现并且用户将能够与其进行交互。
我试图从 bootstrap 添加一个下拉列表,就像我在 here 中看到的那样,但是列表没有显示,你可以在这里看到
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
right:40px;
background-color:#0C9;
color:#FFF;
border-radius:50px;
text-align:center;
box-shadow: 2px 2px 3px #999;
}
.my-float{
margin-top:22px;
}
.label-container{
position:fixed;
bottom:48px;
right:105px;
display:table;
visibility: hidden;
}
.label-text{
color:#FFF;
background:rgba(51,51,51,0.5);
display:table-cell;
vertical-align:middle;
padding:10px;
border-radius:3px;
}
.label-arrow{
display:table-cell;
vertical-align:middle;
color:#333;
opacity:0.5;
}
.my-float{
font-size:24px;
margin-top:18px;
}
a.float + div.label-container {
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.5s ease;
}
a.float:hover + div.label-container{
visibility: visible;
opacity: 1;
}
a.float:hover .user-req-list {
visibility: collapse;
}
.user-req-list {
visibility: hidden;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="dropdown">
<a class="float dropdown-toggle" role="button" id="dropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<i class="fa fa-plus my-float"></i>
</a>
<div class="label-container">
<div class="label-text">User Join Requests</div>
<i class="fa fa-play label-arrow"></i>
</div>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
如您所见,它不起作用,当我将鼠标悬停在按钮上时,列表没有显示。有什么办法可以做我想做的事吗?
另请注意,我的项目在 angular 6 中,因此任何 javascript 大部分都不在画面中。
实际上,您的代码可以正常工作。您只是没有为下拉菜单添加 JS 要求。 See documentation.
Dropdowns are built on a third party library, Popper.js, which provides dynamic positioning and viewport detection. Be sure to include popper.min.js before Bootstrap’s JavaScript or use bootstrap.bundle.min.js / bootstrap.bundle.js which contains Popper.js. Popper.js isn’t used to position dropdowns in navbars though as dynamic positioning isn’t required.
但是请注意,将鼠标悬停在按钮上将无法访问下拉菜单。根据documentation, this is an intentional design decision.
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
right:40px;
background-color:#0C9;
color:#FFF;
border-radius:50px;
text-align:center;
box-shadow: 2px 2px 3px #999;
}
.my-float{
margin-top:22px;
}
.label-container{
position:fixed;
bottom:48px;
right:105px;
display:table;
visibility: hidden;
}
.label-text{
color:#FFF;
background:rgba(51,51,51,0.5);
display:table-cell;
vertical-align:middle;
padding:10px;
border-radius:3px;
}
.label-arrow{
display:table-cell;
vertical-align:middle;
color:#333;
opacity:0.5;
}
.my-float{
font-size:24px;
margin-top:18px;
}
a.float + div.label-container {
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.5s ease;
}
a.float:hover + div.label-container{
visibility: visible;
opacity: 1;
}
a.float:hover .user-req-list {
visibility: collapse;
}
.user-req-list {
visibility: hidden;
}
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="dropdown">
<a class="float dropdown-toggle" role="button" id="dropdownMenuButton" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<i class="fa fa-plus my-float"></i>
</a>
<div class="label-container">
<div class="label-text">User Join Requests</div>
<i class="fa fa-play label-arrow"></i>
</div>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
我的 html 页面中有一个浮动按钮
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
right:40px;
background-color:#0C9;
color:#FFF;
border-radius:50px;
text-align:center;
box-shadow: 2px 2px 3px #999;
}
.my-float{
margin-top:22px;
}
.label-container{
position:fixed;
bottom:48px;
right:105px;
display:table;
visibility: hidden;
}
.label-text{
color:#FFF;
background:rgba(51,51,51,0.5);
display:table-cell;
vertical-align:middle;
padding:10px;
border-radius:3px;
}
.label-arrow{
display:table-cell;
vertical-align:middle;
color:#333;
opacity:0.5;
}
.my-float{
font-size:24px;
margin-top:18px;
}
a.float + div.label-container {
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.5s ease;
}
a.float:hover + div.label-container{
visibility: visible;
opacity: 1;
}
a.float:hover .user-req-list {
visibility: collapse;
}
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
right:40px;
background-color:#0C9;
color:#FFF;
border-radius:50px;
text-align:center;
box-shadow: 2px 2px 3px #999;
}
.my-float{
margin-top:22px;
}
.label-container{
position:fixed;
bottom:48px;
right:105px;
display:table;
visibility: hidden;
}
.label-text{
color:#FFF;
background:rgba(51,51,51,0.5);
display:table-cell;
vertical-align:middle;
padding:10px;
border-radius:3px;
}
.label-arrow{
display:table-cell;
vertical-align:middle;
color:#333;
opacity:0.5;
}
.my-float{
font-size:24px;
margin-top:18px;
}
a.float + div.label-container {
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.5s ease;
}
a.float:hover + div.label-container{
visibility: visible;
opacity: 1;
}
a.float:hover .user-req-list {
visibility: collapse;
}
<body>
<a class="float">
<i class="fa fa-plus my-float"></i>
</a>
<div class="label-container">
<div class="label-text">User Join Requests</div>
<i class="fa fa-play label-arrow"></i>
</div>
</body>
我想向此按钮添加一个下拉列表,这样当我在其上 press/hover 时,该列表将出现并且用户将能够与其进行交互。 我试图从 bootstrap 添加一个下拉列表,就像我在 here 中看到的那样,但是列表没有显示,你可以在这里看到
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
right:40px;
background-color:#0C9;
color:#FFF;
border-radius:50px;
text-align:center;
box-shadow: 2px 2px 3px #999;
}
.my-float{
margin-top:22px;
}
.label-container{
position:fixed;
bottom:48px;
right:105px;
display:table;
visibility: hidden;
}
.label-text{
color:#FFF;
background:rgba(51,51,51,0.5);
display:table-cell;
vertical-align:middle;
padding:10px;
border-radius:3px;
}
.label-arrow{
display:table-cell;
vertical-align:middle;
color:#333;
opacity:0.5;
}
.my-float{
font-size:24px;
margin-top:18px;
}
a.float + div.label-container {
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.5s ease;
}
a.float:hover + div.label-container{
visibility: visible;
opacity: 1;
}
a.float:hover .user-req-list {
visibility: collapse;
}
.user-req-list {
visibility: hidden;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="dropdown">
<a class="float dropdown-toggle" role="button" id="dropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<i class="fa fa-plus my-float"></i>
</a>
<div class="label-container">
<div class="label-text">User Join Requests</div>
<i class="fa fa-play label-arrow"></i>
</div>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
如您所见,它不起作用,当我将鼠标悬停在按钮上时,列表没有显示。有什么办法可以做我想做的事吗? 另请注意,我的项目在 angular 6 中,因此任何 javascript 大部分都不在画面中。
实际上,您的代码可以正常工作。您只是没有为下拉菜单添加 JS 要求。 See documentation.
Dropdowns are built on a third party library, Popper.js, which provides dynamic positioning and viewport detection. Be sure to include popper.min.js before Bootstrap’s JavaScript or use bootstrap.bundle.min.js / bootstrap.bundle.js which contains Popper.js. Popper.js isn’t used to position dropdowns in navbars though as dynamic positioning isn’t required.
但是请注意,将鼠标悬停在按钮上将无法访问下拉菜单。根据documentation, this is an intentional design decision.
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
right:40px;
background-color:#0C9;
color:#FFF;
border-radius:50px;
text-align:center;
box-shadow: 2px 2px 3px #999;
}
.my-float{
margin-top:22px;
}
.label-container{
position:fixed;
bottom:48px;
right:105px;
display:table;
visibility: hidden;
}
.label-text{
color:#FFF;
background:rgba(51,51,51,0.5);
display:table-cell;
vertical-align:middle;
padding:10px;
border-radius:3px;
}
.label-arrow{
display:table-cell;
vertical-align:middle;
color:#333;
opacity:0.5;
}
.my-float{
font-size:24px;
margin-top:18px;
}
a.float + div.label-container {
visibility: hidden;
opacity: 0;
transition: visibility 0s, opacity 0.5s ease;
}
a.float:hover + div.label-container{
visibility: visible;
opacity: 1;
}
a.float:hover .user-req-list {
visibility: collapse;
}
.user-req-list {
visibility: hidden;
}
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<div class="dropdown">
<a class="float dropdown-toggle" role="button" id="dropdownMenuButton" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
<i class="fa fa-plus my-float"></i>
</a>
<div class="label-container">
<div class="label-text">User Join Requests</div>
<i class="fa fa-play label-arrow"></i>
</div>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>