2016-09-20 2 views
0

私はこのドロップダウンメニューをインターネット上に見つけました。問題はドロップダウンが常に開いていて、それはdoes not workです。私が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() 
 
{ 
 
\t \t $(".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 
 
{ 
 
\t position: relative; 
 
\t top: 5px; 
 
\t width: 250px; 
 
\t 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 
 
{ 
 
\t background: #F8F8F8; 
 
\t width: 240px; 
 
\t height: 40px; 
 
\t color: #888; 
 
\t border: none; 
 
\t border-radius: 3px; 
 
\t padding: 0 0 0 10px; 
 
\t font: bold 13px Helvetica, sans-serif; 
 
\t text-transform: uppercase; 
 
\t line-height: 41px; 
 
\t cursor: default; 
 
\t -webkit-user-select: none; 
 
\t -moz-user-select: none; 
 
\t -ms-user-select: none; 
 
\t -o-user-select: none; 
 
\t user-select: none; 
 
\t margin-bottom: 7px; 
 
\t box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); 
 
} 
 

 
.down 
 
{ 
 
\t position: absolute; 
 
\t top: 0; 
 
\t right: 0; 
 
\t padding: 10px 14px 0 0; 
 
\t border: none; 
 
\t color: #888888; 
 
\t font-size: 20px; 
 
} 
 

 
.down:hover { color: #555555; } 
 

 
.user_text { cursor: pointer; } 
 

 
.menu a 
 
{ 
 
\t display: block; 
 
\t background: #F8F8F8; 
 
\t width: 240px; 
 
\t height: 40px; 
 
\t padding: 0 0 0 10px; 
 
\t font: bold 13px Helvetica, sans-serif; 
 
\t text-transform: uppercase; 
 
\t text-decoration: none; 
 
\t color: #000000; 
 
\t color: rgba(0, 0, 0, 0.4); 
 
\t line-height: 40px; 
 
\t 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) 
 
{ 
 
\t border-top-left-radius: 3px; 
 
\t border-top-right-radius: 3px; 
 
} 
 

 
.menu a:last-child 
 
{ 
 
\t border-bottom-left-radius: 3px; 
 
\t border-bottom-right-radius: 3px; 
 
} 
 

 
.menu a:hover { color: #555555; } 
 

 
.menu a:hover > .octicon { color: #555555; } 
 

 
.arrow 
 
{ 
 
\t width: 0; 
 
\t height: 0; 
 
\t margin-left: 15px; 
 
\t border-left: 7px solid transparent; 
 
\t border-right: 7px solid transparent; 
 
\t 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>

+0

ドロップダウンメニューは非常にシンプルです。 w3schools(http://www.w3schools.com/howto/howto_js_dropdown.asp)をチェックするか、ブートストラップhttp://www.w3schools.com/bootstrap/bootstrap_dropdowns.asp –

答えて

0

使用を追加します。私はまた、あなたがそれを隠すしない場合はそれが起こる勿論.menuは常に、表示されていることを言って、あなたがクラスで.arrowまたはテキストの上をクリックした後、あなたの.menu

「.user_text」(フェードイン)表示したいと思います。この例では、私は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 
 
{ 
 
\t position: relative; 
 
\t top: 5px; 
 
\t width: 250px; 
 
\t 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 
 
{ 
 
\t background: #F8F8F8; 
 
\t width: 240px; 
 
\t height: 40px; 
 
\t color: #888; 
 
\t border: none; 
 
\t border-radius: 3px; 
 
\t padding: 0 0 0 10px; 
 
\t font: bold 13px Helvetica, sans-serif; 
 
\t text-transform: uppercase; 
 
\t line-height: 41px; 
 
\t cursor: default; 
 
\t -webkit-user-select: none; 
 
\t -moz-user-select: none; 
 
\t -ms-user-select: none; 
 
\t -o-user-select: none; 
 
\t user-select: none; 
 
\t margin-bottom: 7px; 
 
\t box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); 
 
} 
 

 
.down 
 
{ 
 
\t position: absolute; 
 
\t top: 0; 
 
\t right: 0; 
 
\t padding: 10px 14px 0 0; 
 
\t border: none; 
 
\t color: #888888; 
 
\t font-size: 20px; 
 
} 
 

 
.down:hover { color: #555555; } 
 

 
.user_text { cursor: pointer; } 
 

 
.menu a 
 
{ 
 
\t display: block; 
 
\t background: #F8F8F8; 
 
\t width: 240px; 
 
\t height: 40px; 
 
\t padding: 0 0 0 10px; 
 
\t font: bold 13px Helvetica, sans-serif; 
 
\t text-transform: uppercase; 
 
\t text-decoration: none; 
 
\t color: #000000; 
 
\t color: rgba(0, 0, 0, 0.4); 
 
\t line-height: 40px; 
 
\t 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) 
 
{ 
 
\t border-top-left-radius: 3px; 
 
\t border-top-right-radius: 3px; 
 
} 
 

 
.menu a:last-child 
 
{ 
 
\t border-bottom-left-radius: 3px; 
 
\t border-bottom-right-radius: 3px; 
 
} 
 

 
.menu a:hover { color: #555555; } 
 

 
.menu a:hover > .octicon { color: #555555; } 
 

 
.arrow 
 
{ 
 
\t width: 0; 
 
\t height: 0; 
 
\t margin-left: 15px; 
 
\t border-left: 7px solid transparent; 
 
\t border-right: 7px solid transparent; 
 
\t 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>

+0

ありがとうございました。魅力のように動作します –

-1

ステップ1:HTMLを追加

<div class="dropdown"> 
    <button onclick="myFunction()" class="dropbtn">Dropdown</button> 
    <div id="myDropdown" class="dropdown-content"> 
    <a href="#">Link 1</a> 
    <a href="#">Link 2</a> 
    <a href="#">Link 3</a> 
    </div> 
</div> 

ステップ2:CSSの

/* Dropdown Button */ 
.dropbtn { 
    background-color: #4CAF50; 
    color: white; 
    padding: 16px; 
    font-size: 16px; 
    border: none; 
    cursor: pointer; 
} 

/* Dropdown button on hover & focus */ 
.dropbtn:hover, .dropbtn:focus { 
    background-color: #3e8e41; 
} 

/* The container <div> - needed to position the dropdown content */ 
.dropdown { 
    position: relative; 
    display: inline-block; 
} 

/* Dropdown Content (Hidden by Default) */ 
.dropdown-content { 
    display: none; 
    position: absolute; 
    background-color: #f9f9f9; 
    min-width: 160px; 
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 
} 

/* Links inside the dropdown */ 
.dropdown-content a { 
    color: black; 
    padding: 12px 16px; 
    text-decoration: none; 
    display: block; 
} 

/* Change color of dropdown links on hover */ 
.dropdown-content a:hover {background-color: #f1f1f1} 

/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */ 
.show {display:block;} 

ステップ3を追加します。あなたのHTMLに存在しない

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

.cog.admin-text JQ

でJavaScript

/* When the user clicks on the button, 
toggle between hiding and showing the dropdown content */ 
function myFunction() { 
    document.getElementById("myDropdown").classList.toggle("show"); 
} 

// Close the dropdown menu if the user clicks outside of it 
window.onclick = function(event) { 
    if (!event.target.matches('.dropbtn')) { 

    var dropdowns = document.getElementsByClassName("dropdown-content"); 
    var i; 
    for (i = 0; i < dropdowns.length; i++) { 
     var openDropdown = dropdowns[i]; 
     if (openDropdown.classList.contains('show')) { 
     openDropdown.classList.remove('show'); 
     } 
    } 
    } 
} 
+0

を使用して、OPから提供されたコードを使用してください。ドロップダウンのあらかじめ作成されたコードをコピーして貼り付けるのではなく、http://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_dropdown_navbar_click? –

0

.down & .user_text

それを試してみてください。

$(".down, .user_text").on("click", function() { 
 
\t \t $(".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 
 
{ 
 
\t position: relative; 
 
\t top: 5px; 
 
\t width: 250px; 
 
\t 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 
 
{ 
 
\t background: #F8F8F8; 
 
\t width: 240px; 
 
\t height: 40px; 
 
\t color: #888; 
 
\t border: none; 
 
\t border-radius: 3px; 
 
\t padding: 0 0 0 10px; 
 
\t font: bold 13px Helvetica, sans-serif; 
 
\t text-transform: uppercase; 
 
\t line-height: 41px; 
 
\t cursor: default; 
 
\t -webkit-user-select: none; 
 
\t -moz-user-select: none; 
 
\t -ms-user-select: none; 
 
\t -o-user-select: none; 
 
\t user-select: none; 
 
\t margin-bottom: 7px; 
 
\t box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); 
 
} 
 

 
.down 
 
{ 
 
\t position: absolute; 
 
\t top: 0; 
 
\t right: 0; 
 
\t padding: 10px 14px 0 0; 
 
\t border: none; 
 
\t color: #888888; 
 
\t font-size: 20px; 
 
} 
 

 
.down:hover { color: #555555; } 
 

 
.user_text { cursor: pointer; } 
 

 
.menu a 
 
{ 
 
\t display: block; 
 
\t background: #F8F8F8; 
 
\t width: 240px; 
 
\t height: 40px; 
 
\t padding: 0 0 0 10px; 
 
\t font: bold 13px Helvetica, sans-serif; 
 
\t text-transform: uppercase; 
 
\t text-decoration: none; 
 
\t color: #000000; 
 
\t color: rgba(0, 0, 0, 0.4); 
 
\t line-height: 40px; 
 
\t 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) 
 
{ 
 
\t border-top-left-radius: 3px; 
 
\t border-top-right-radius: 3px; 
 
} 
 

 
.menu a:last-child 
 
{ 
 
\t border-bottom-left-radius: 3px; 
 
\t border-bottom-right-radius: 3px; 
 
} 
 

 
.menu a:hover { color: #555555; } 
 

 
.menu a:hover > .octicon { color: #555555; } 
 

 
.arrow 
 
{ 
 
\t width: 0; 
 
\t height: 0; 
 
\t margin-left: 15px; 
 
\t border-left: 7px solid transparent; 
 
\t border-right: 7px solid transparent; 
 
\t 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>

-2

jqueryでfadeInとfadeOutを使用できます jqueryのドキュメントを参照

-1

cogまたはadmin-textのいずれかのクラスを持つ要素はありません。あなたはこれらのonclickを使用しています。このラインでは

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

:あなたが提供しているcodePenの例は、この行を置き換え、管理、テキストクラス

+0

彼はadmin-text class rightを逃しました。なぜ投票が下りますか? – Rajashekhar

1

を持つ要素が含まれてい

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

を...、それが動作します。 http://codepen.io/catalin586/pen/LRbELV

はまた、あなたのメニューにデフォルトで表示なしを追加しないようにしたい場合があります:

あなたはCodepenでそれを確認することができます

.menu {display: none;} 
0

は.cogを除去するために.adminテキストを変更します。管理者パネル

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

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

希望すると助かります!

$(".admin-panel").on("click", function() 
 
{ 
 
\t \t $(".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 
 
{ 
 
\t position: relative; 
 
\t top: 5px; 
 
\t width: 250px; 
 
\t 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 
 
{ 
 
\t background: #F8F8F8; 
 
\t width: 240px; 
 
\t height: 40px; 
 
\t color: #888; 
 
\t border: none; 
 
\t border-radius: 3px; 
 
\t padding: 0 0 0 10px; 
 
\t font: bold 13px Helvetica, sans-serif; 
 
\t text-transform: uppercase; 
 
\t line-height: 41px; 
 
\t cursor: default; 
 
\t -webkit-user-select: none; 
 
\t -moz-user-select: none; 
 
\t -ms-user-select: none; 
 
\t -o-user-select: none; 
 
\t user-select: none; 
 
\t margin-bottom: 7px; 
 
\t box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); 
 
} 
 

 
.down 
 
{ 
 
\t position: absolute; 
 
\t top: 0; 
 
\t right: 0; 
 
\t padding: 10px 14px 0 0; 
 
\t border: none; 
 
\t color: #888888; 
 
\t font-size: 20px; 
 
} 
 

 
.down:hover { color: #555555; } 
 

 
.user_text { cursor: pointer; } 
 

 
.menu a 
 
{ 
 
\t display: block; 
 
\t background: #F8F8F8; 
 
\t width: 240px; 
 
\t height: 40px; 
 
\t padding: 0 0 0 10px; 
 
\t font: bold 13px Helvetica, sans-serif; 
 
\t text-transform: uppercase; 
 
\t text-decoration: none; 
 
\t color: #000000; 
 
\t color: rgba(0, 0, 0, 0.4); 
 
\t line-height: 40px; 
 
\t 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) 
 
{ 
 
\t border-top-left-radius: 3px; 
 
\t border-top-right-radius: 3px; 
 
} 
 

 
.menu a:last-child 
 
{ 
 
\t border-bottom-left-radius: 3px; 
 
\t border-bottom-right-radius: 3px; 
 
} 
 

 
.menu a:hover { color: #555555; } 
 

 
.menu a:hover > .octicon { color: #555555; } 
 

 
.arrow 
 
{ 
 
\t width: 0; 
 
\t height: 0; 
 
\t margin-left: 15px; 
 
\t border-left: 7px solid transparent; 
 
\t border-right: 7px solid transparent; 
 
\t 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>

関連する問題