如何制作下拉菜单

How to make dropdown menu

本文关键字:下拉菜单 何制作      更新时间:2023-09-26

我在网上找到了这个下拉菜单。问题是下拉菜单总是打开的,它不起作用。当我从http://codepen.io/Jeplaa/pen/IzAvx粘贴所有默认代码这行不通。你能帮帮我吗?我怎么能使当用户点击按钮时,它显示下拉菜单,直到用户再次点击按钮。

我包含了2个脚本

 <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
 <script src="assets/js/menu.js"></script>

下拉菜单的代码:

$( ".cog, .admin-text" ).on( "click", function()
{
		$( ".menu" ).stop().fadeToggle( "fast" );
});
/*MENU CSS------------*/
.top {
        background-color:#F8F8F8;
        width:100%;
        height:60px;
       -webkit-box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
        -moz-box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
        box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
}
.profile_img {
    max-width: 28px;
    max-height: 32px;
    margin-top:5px;
}
.content
{
	position: relative;
	top: 5px;
	width: 250px;
	margin-left:30px;
}
.user_text {
    display:inline-block;
    margin-left:20px;
    vertical-align:20%;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
}
.admin-panel
{
	background: #F8F8F8;
	width: 240px;
	height: 40px;
	color: #888;
	border: none;
	border-radius: 3px;
	padding: 0 0 0 10px;
	font: bold 13px Helvetica, sans-serif;
	text-transform: uppercase;
	line-height: 41px;
	cursor: default;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	-o-user-select: none;
	user-select: none;
	margin-bottom: 7px;
	box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.2 );
}
.down
{
	position: absolute;
	top: 0;
	right: 0;
	padding: 10px 14px 0 0;
	border: none;
	color: #888888;
	font-size: 20px;
}
.down:hover { color: #555555; }
.user_text { cursor: pointer; }
.menu a
{
	display: block;
	background: #F8F8F8;
	width: 240px;
	height: 40px;
	padding: 0 0 0 10px;
	font: bold 13px Helvetica, sans-serif;
	text-transform: uppercase;
	text-decoration: none;
	color: #000000;
	color: rgba( 0, 0, 0, 0.4 );
	line-height: 40px;
	box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.2 );
    font-family: "Open Sans", sans-serif;
    font-size: 13px;
}
.menu a:nth-child( 2 )
{
	border-top-left-radius: 3px;
	border-top-right-radius: 3px;
}
.menu a:last-child
{
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
}
.menu a:hover { color: #555555; }
.menu a:hover > .octicon { color: #555555; }
.arrow
{
	width: 0;
	height: 0;
	margin-left: 15px;
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-bottom: 9px solid #F8F8F8;
}
 <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans:300">
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<div class="top">
                <div class="content">
                    <div class="admin-panel"><img src="http://i.imgur.com/wmyOI5f.jpg" class="profile_img"><b class="user_text">Curtis Jackson</b></div> <span class="down"><img src="http://i.imgur.com/bLXw2RL.png"></span>
                    <div class="menu">
                        <div class="arrow"></div> 
                        <a href="#">Edit User</a> 
                        <a href="#">Worker Statistics</span></a> 
                        <a href="#">Settings</span></a> 
                        <a href="#">Logout</a> 
                    </div>
                </div>
            </div>

替换这一行:

$( ".cog, .admin-text" ).on( "click", function()

用这行:

$( ".admin-panel" ).on( "click", function()

…它会成功的。

你可以在Codepen上查看:http://codepen.io/catalin586/pen/LRbELV

你可能还想在你的菜单中默认添加一个显示none:

.menu {display: none;}

在JQ中使用

 $( ".cog, .admin-text" ).on( "click", function()
   {
    $( ".menu" ).stop().fadeToggle( "fast" );
   });

.cog.admin-text在您的HTML中不存在。我猜你想要你的.menu出现(淡出)后,你点击.arrow或与类"。user_text"的文本

你还说.menu总是出现,当然如果你不隐藏它就会发生。在这个例子中,我通过在CSS

中设置{display:none}来隐藏它

参见下面的代码

如果这是你想要的,请告诉我。

$(".down,.user_text").click(function(){
   $(".menu").fadeToggle( "fast" );
})
.top {
        background-color:#F8F8F8;
        width:100%;
        height:60px;
       -webkit-box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
        -moz-box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
        box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
}
.profile_img {
    max-width: 28px;
    max-height: 32px;
    margin-top:5px;
}
.content
{
	position: relative;
	top: 5px;
	width: 250px;
	margin-left:30px;
}
.user_text {
    display:inline-block;
    margin-left:20px;
    vertical-align:20%;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
}
.admin-panel
{
	background: #F8F8F8;
	width: 240px;
	height: 40px;
	color: #888;
	border: none;
	border-radius: 3px;
	padding: 0 0 0 10px;
	font: bold 13px Helvetica, sans-serif;
	text-transform: uppercase;
	line-height: 41px;
	cursor: default;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	-o-user-select: none;
	user-select: none;
	margin-bottom: 7px;
	box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.2 );
}
.down
{
	position: absolute;
	top: 0;
	right: 0;
	padding: 10px 14px 0 0;
	border: none;
	color: #888888;
	font-size: 20px;
}
.down:hover { color: #555555; }
.user_text { cursor: pointer; }
.menu a
{
	display: block;
	background: #F8F8F8;
	width: 240px;
	height: 40px;
	padding: 0 0 0 10px;
	font: bold 13px Helvetica, sans-serif;
	text-transform: uppercase;
	text-decoration: none;
	color: #000000;
	color: rgba( 0, 0, 0, 0.4 );
	line-height: 40px;
	box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.2 );
    font-family: "Open Sans", sans-serif;
    font-size: 13px;
}
.menu a:nth-child( 2 )
{
	border-top-left-radius: 3px;
	border-top-right-radius: 3px;
}
.menu a:last-child
{
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
}
.menu a:hover { color: #555555; }
.menu a:hover > .octicon { color: #555555; }
.arrow
{
	width: 0;
	height: 0;
	margin-left: 15px;
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-bottom: 9px solid #F8F8F8;
}
.menu { display:none}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="top">
                <div class="content">
                    <div class="admin-panel"><img src="http://i.imgur.com/wmyOI5f.jpg" class="profile_img"><b class="user_text">Curtis Jackson</b></div> <span class="down"><img src="http://i.imgur.com/bLXw2RL.png"></span>
                    <div class="menu">
                        <div class="arrow"></div> 
                        <a href="#">Edit User</a> 
                        <a href="#">Worker Statistics</a> 
                        <a href="#">Settings</a> 
                        <a href="#">Logout</a> 
                    </div>
                </div>
            </div>

.down &.user_text

试一试:

$( ".down, .user_text" ).on( "click", function() {
		$( ".menu" ).stop().fadeToggle( "fast" );
});
/*MENU CSS------------*/
.top {
        background-color:#F8F8F8;
        width:100%;
        height:60px;
       -webkit-box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
        -moz-box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
        box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
}
.profile_img {
    max-width: 28px;
    max-height: 32px;
    margin-top:5px;
}
.content
{
	position: relative;
	top: 5px;
	width: 250px;
	margin-left:30px;
}
.user_text {
    display:inline-block;
    margin-left:20px;
    vertical-align:20%;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
}
.admin-panel
{
	background: #F8F8F8;
	width: 240px;
	height: 40px;
	color: #888;
	border: none;
	border-radius: 3px;
	padding: 0 0 0 10px;
	font: bold 13px Helvetica, sans-serif;
	text-transform: uppercase;
	line-height: 41px;
	cursor: default;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	-o-user-select: none;
	user-select: none;
	margin-bottom: 7px;
	box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.2 );
}
.down
{
	position: absolute;
	top: 0;
	right: 0;
	padding: 10px 14px 0 0;
	border: none;
	color: #888888;
	font-size: 20px;
}
.down:hover { color: #555555; }
.user_text { cursor: pointer; }
.menu a
{
	display: block;
	background: #F8F8F8;
	width: 240px;
	height: 40px;
	padding: 0 0 0 10px;
	font: bold 13px Helvetica, sans-serif;
	text-transform: uppercase;
	text-decoration: none;
	color: #000000;
	color: rgba( 0, 0, 0, 0.4 );
	line-height: 40px;
	box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.2 );
    font-family: "Open Sans", sans-serif;
    font-size: 13px;
}
.menu a:nth-child( 2 )
{
	border-top-left-radius: 3px;
	border-top-right-radius: 3px;
}
.menu a:last-child
{
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
}
.menu a:hover { color: #555555; }
.menu a:hover > .octicon { color: #555555; }
.arrow
{
	width: 0;
	height: 0;
	margin-left: 15px;
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-bottom: 9px solid #F8F8F8;
}
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans:300">
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<div class="top">
                <div class="content">
                    <div class="admin-panel"><img src="http://i.imgur.com/wmyOI5f.jpg" class="profile_img">
                      <b class="user_text">Curtis Jackson</b>
                  </div> 
                  <span class="down">
                    <img src="http://i.imgur.com/bLXw2RL.png">
                  </span>
                    <div class="menu">
                        <div class="arrow"></div> 
                        <a href="#">Edit User</a> 
                        <a href="#">Worker Statistics</span></a> 
                        <a href="#">Settings</span></a> 
                        <a href="#">Logout</a> 
                    </div>
                </div>
            </div>

删除。cog并将。admin-text更改为。admin-panel

$( ".cog, .admin-text" ).on( "click", function()

$( ".admin-panel" ).on( "click", function()

希望有帮助!

$( ".admin-panel" ).on( "click", function()
{
		$( ".menu" ).stop().fadeToggle( "fast" );
});
/*MENU CSS------------*/
.top {
        background-color:#F8F8F8;
        width:100%;
        height:60px;
       -webkit-box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
        -moz-box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
        box-shadow: inset 0px -200px 8px -200px rgba(178,176,176,1);
}
.profile_img {
    max-width: 28px;
    max-height: 32px;
    margin-top:5px;
}
.content
{
	position: relative;
	top: 5px;
	width: 250px;
	margin-left:30px;
}
.user_text {
    display:inline-block;
    margin-left:20px;
    vertical-align:20%;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
}
.admin-panel
{
	background: #F8F8F8;
	width: 240px;
	height: 40px;
	color: #888;
	border: none;
	border-radius: 3px;
	padding: 0 0 0 10px;
	font: bold 13px Helvetica, sans-serif;
	text-transform: uppercase;
	line-height: 41px;
	cursor: default;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	-o-user-select: none;
	user-select: none;
	margin-bottom: 7px;
	box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.2 );
}
.down
{
	position: absolute;
	top: 0;
	right: 0;
	padding: 10px 14px 0 0;
	border: none;
	color: #888888;
	font-size: 20px;
}
.down:hover { color: #555555; }
.user_text { cursor: pointer; }
.menu a
{
	display: block;
	background: #F8F8F8;
	width: 240px;
	height: 40px;
	padding: 0 0 0 10px;
	font: bold 13px Helvetica, sans-serif;
	text-transform: uppercase;
	text-decoration: none;
	color: #000000;
	color: rgba( 0, 0, 0, 0.4 );
	line-height: 40px;
	box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.2 );
    font-family: "Open Sans", sans-serif;
    font-size: 13px;
}
.menu a:nth-child( 2 )
{
	border-top-left-radius: 3px;
	border-top-right-radius: 3px;
}
.menu a:last-child
{
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
}
.menu a:hover { color: #555555; }
.menu a:hover > .octicon { color: #555555; }
.arrow
{
	width: 0;
	height: 0;
	margin-left: 15px;
	border-left: 7px solid transparent;
	border-right: 7px solid transparent;
	border-bottom: 9px solid #F8F8F8;
}
 <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans:300">
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<div class="top">
                <div class="content">
                    <div class="admin-panel"><img src="http://i.imgur.com/wmyOI5f.jpg" class="profile_img"><b class="user_text">Curtis Jackson</b></div> <span class="down"><img src="http://i.imgur.com/bLXw2RL.png"></span>
                    <div class="menu">
                        <div class="arrow"></div> 
                        <a href="#">Edit User</a> 
                        <a href="#">Worker Statistics</span></a> 
                        <a href="#">Settings</span></a> 
                        <a href="#">Logout</a> 
                    </div>
                </div>
            </div>

您没有任何带有cog或admin-text类的元素。你使用的是onclick。您提供的codePen示例包含一个admin-text类

的元素。

可以在jquery中使用fadeIn和fadeOut参见jquery文档