とりあえずデモを確認してください。
デモは50%です。
以下のメニューアイコンをクリックしてナビゲーションを開きます。
☰ 開くサンプルコード
HTML
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<a href="#">紹介</a>
<a href="#">サービス</a>
<a href="#">アクセス</a>
<a href="#">お問い合わせ</a>
</div>
<span style="font-size:30px;cursor:pointer" onclick="openNav()">☰ 開く</span>
mySidenav
というIDの要素は、サイドバーメニューを定義しています。
closebtn
クラスのリンクをクリックすることで、サイドバーを閉じることができます。
また、☰
はハンバーガーアイコンを表しています。このアイコンをクリックすることでサイドバーが開きます。
CSS
.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;
text-align:center;
}
.sidenav a {
padding: 8px 8px 8px 32px;
text-decoration: none;
font-size: 25px;
color: #818181;
display: block;
transition: 0.3s;
}
.sidenav a:hover{
color: #f1f1f1;
}
.sidenav .closebtn {
position: absolute;
top: 0;
right: 25px;
font-size: 36px;
margin-left: 50px;
}
こちらのCSSコードでは、次のようなスタイルが設定されています。
.sidenav
クラスは、サイドバーメニュー全体のスタイルを定義します。位置固定(position: fixed
)され、画面の左端(left: 0
)に配置され、背景色は黒色(background-color: #111
)です。表示と非表示のアニメーションは0.5秒かけて行われます(transition: 0.5s
)。padding-top
により、コンテンツが上部から60px下にずれるように設定されています。.sidenav a
クラスは、サイドバーメニュー内のリンク(メニューアイテム)のスタイルを定義します。padding
でアイテムの内部余白を設定し、font-size
で文字サイズを設定しています。リンクがホバーされると、文字の色が変わります(color
、transition
)。.sidenav .closebtn
クラスは、サイドバーメニュー内で使用される閉じるボタン(”×”)のスタイルを設定します。position
で絶対配置され、右上に配置されるように設定されています。
JavaScript
function openNav() {
document.getElementById("mySidenav").style.width = "100%";
}
function closeNav() {
document.getElementById("mySidenav").style.width = "0";
}
openNav()
関数は、サイドバーメニューを開く際に呼び出されます。
getElementById("mySidenav")
は、mySidenav
というIDを持つ要素を取得します。そして、その要素の style.width
を "100%"
に設定することで、サイドバーメニューが表示されます。これにより、サイドバーメニューが画面の幅いっぱいに広がります。
closeNav()
関数は、サイドバーメニューを閉じる際に呼び出されます。
同じく getElementById("mySidenav")
を使用して、要素を取得し、style.width
を "0"
に設定することで、サイドバーメニューが非表示になります。幅がゼロになるため、画面上では見えなくなります。
コメント