2017-02-02 4 views
0

私のウェブページにHTMLとjquery/javascriptを使ってサイドメニューを表示しようとしています。私はサイドメニューを表示することしかできませんでしたが、サイドメニューの開閉はできませんでした。これで助けが必要です。htmlとjqueryを使用してサイドメニューを作成する

HTML:

<body> 
    <div id="container"> 
     <nav> 
     <h1> Menu<span id="openIcon"> <i class="fa fa-align-justify" aria-hidden="true"></i></span></h1> 
     <ul id="sidemenu" style="list-style-type:none"> 
      <li class="list"> <a href="https://yahoo.co.in">Yahoo!!</a></li> 
      <li class="list"> <a href="https://gmail.com"> GMail </a></li> 
      <li class="list"> <a href= "https://twitter.com">twitter</a></li> 
     </ul> 
     </nav> 
    </div> 
    <script src="sidemenu.js"></script> 
</body> 
+0

サイドメニューについては、以下を試してくださいあなたの要件を実装するよう人々に求めているのではなく、 – garglblarg

答えて

2

シンプルなサイドメニュー

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<script> 
 

 
(function(){ 
 
    $('#openIcon').on('click', function(){ 
 
    $('#sidemenu').toggleClass('active'); 
 
    }); 
 
})();
#openIcon { 
 
    cursor: pointer; 
 
} 
 
#sidemenu { 
 
    left: -100%; 
 
    position: absolute; 
 
} 
 
.active { 
 
    left: 0 !important; 
 
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" /> 
 
<nav> 
 
    <h1> Menu<span id="openIcon"> <i class="fa fa-align-justify" aria-hidden="true"></i></span></h1> 
 
    <ul id="sidemenu" style="list-style-type:none"> 
 
    <li class="list"> <a href="https://yahoo.co.in">Yahoo!!</a></li> 
 
    <li class="list"> <a href="https://gmail.com"> GMail </a></li> 
 
    <li class="list"> <a href= "https://twitter.com">twitter</a></li> 
 
    </ul> 
 
</nav> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

、あなたは全幅メニューの使用にこの

(function(){ 
 
\t var $hideElement = $('#menuDiv'); 
 
\t $('#menu').on('click', function(){ 
 
\t \t $hideElement.addClass('opend'); 
 
\t }); 
 
\t $('#active_menu').on('click', function(){ 
 
\t \t $hideElement.removeClass('opend'); 
 
\t }); 
 
})();
#menuDiv { 
 
\t position:fixed; 
 
\t left:-100%; 
 
\t top:0; 
 
\t width:100%; 
 
\t height:100%; 
 
\t background:#F5CFD0; 
 
\t z-index:999; 
 
\t overflow-x:hidden; 
 
\t transition-duration:05s; 
 
\t -moz-transition-duration:0.5s; 
 
\t -ms-transition-duration:0.5s; 
 
\t -webkit-transition-duration:0.5s; 
 
} 
 
.opend { 
 
\t left:0 !important; 
 
} 
 
#active_menu { 
 
    position: absolute; 
 
    top: 0; 
 
    right: 20px; 
 
    width: 100%; 
 
    padding-top: 15px; 
 
    text-align: right; 
 
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" /> 
 
<a href="#" id="menu"><i class="fa fa-align-justify" aria-hidden="true"></i></a> 
 
<div id="menuDiv"> 
 
\t <a href="#" id="active_menu"><i class="fa fa-times" aria-hidden="true"></i></a> 
 
\t 
 
    
 
</div><!-- /.menuDiv --> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
のようなものが必要な場合としてみてください

+0

アイコンの開閉を見ることができません。ドロップダウンをクリックするのと同じです – devanya

+0

2番目のスニペットで試しました –

+0

これは 'w3schools'の例です – devanya

0

(http://stackoverflow.com/help/how-to-ask)[ハウツー-尋ねる]をお読みください

<html> 
<head> 
<style> 
body { 
    font-family: "Lato", sans-serif; 
} 

.sidenav { 
    height: 100%; 
    width: 0; 
    position: fixed; 
    z-index: 1; 
    top: 0; 
    left: 0; 
    background-color: #111; 
    overflow-x: hidden; 
    transition: 0.5s; 
    padding-top: 60px; 
} 

.sidenav a { 
    padding: 8px 8px 8px 32px; 
    text-decoration: none; 
    font-size: 25px; 
    color: #818181; 
    display: block; 
    transition: 0.3s 
} 

.sidenav a:hover, .offcanvas a:focus{ 
    color: #f1f1f1; 
} 

.sidenav .closebtn { 
    position: absolute; 
    top: 0; 
    right: 25px; 
    font-size: 36px; 
    margin-left: 50px; 
} 

#main { 
    transition: margin-left .5s; 
    padding: 16px; 
} 

@media screen and (max-height: 450px) { 
    .sidenav {padding-top: 15px;} 
    .sidenav a {font-size: 18px;} 
} 
</style> 
</head> 
<body> 

<div id="mySidenav" class="sidenav"> 
    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a> 
    <a href="https://yahoo.co.in">Yahoo!!</a> 
    <a href="https://gmail.com"> GMail </a> 
    <a href= "https://twitter.com">twitter</a> 
</div> 

<div id="main"> 
    <span style="font-size:30px;cursor:pointer" onclick="openNav()">&#9776; Menu</span> 
</div> 

<script> 
function openNav() { 
    document.getElementById("mySidenav").style.width = "250px"; 
    document.getElementById("main").style.marginLeft = "250px"; 
} 

function closeNav() { 
    document.getElementById("mySidenav").style.width = "0"; 
    document.getElementById("main").style.marginLeft= "0"; 
} 
</script> 
</body> 
</html> 
+0

'javascript:void(0)'が使用される理由 – devanya

+0

JavaScriptの空白は、Webページに式を挿入すると望ましくない副作用を引き起こすことがある場合によく使用されます。 JavaScriptを使用すると、未定義のプリミティブな値が返されるので、不要な副作用を取り除くことができます。 JavaScriptの一般的な使用方法:無効(0)はハイパーリンクです。 –

0
<div id="container"> 
    <nav> 
     <h1> Menu<span id="openIcon" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse"> <i class="fa fa-align-justify" aria-hidden="true"></i></span></h1> 
     <ul id="bs-example-navbar-collapse" style="list-style-type:none"> 
      <li class="list"> <a href="https://yahoo.co.in">Yahoo!!</a></li> 
      <li class="list"> <a href="https://gmail.com"> GMail </a></li> 
      <li class="list"> <a href= "https://twitter.com">twitter</a></li> 
     </ul> 
    </nav> 
</div> 
関連する問題