2022/06/06

Toggle(トグル)とは?

toggleは、クリックなどの同じ操作によって、
二つの状態を交互に切り替えられるような仕組みのことです。
このtoggleをどんな用途で使用できるか調べてみたのですが、一つの例としてハンバーガーメニューで使用できます。

以下ようにHTMLとCSSでハンバーガーメニューを作成します。

<div id="nav-container" class="nav-container">
  <!--  メニュー表示(省略) -->
</div>
<div id="hamburger">
		<span id="line1" class="inner_line"></span>
		<span id="line2" class="inner_line"></span>
		<span id="line3" class="inner_line"></span>
</div>

クラス nav-container は てハンバーガーメニュー にOn/Offに連動したメニューです。

メニューの最初の表示位置で-100%で表示位置から外しておきます。これによって最初メニューは表示されません。

クラス nav-container_open は ハンバーガーメニュー でメニューがOnされたとき、メニューを表示するための追加クラスです。

.nav-container {
	transform: translateX(-100%);
	transition: 0.5s;
}
.nav-container_open {
	transform: translateX(0);
	opacity: 1;
	transition: 0.5s;
}
#hamburger {
	display: block;
	position: absolute;
	top: 70px;
	left: 10px;
	width: 40px;
	height: 24px;
	cursor: pointer;
}
#line1 {
	top: 0;
	transition: 0.1s;
}
#line2 {
	top: 10px;
	transition: 0.1s;
}
#line3 {
	bottom: 0px;
	transition: 0.1s;
}
.inner_line {
	display: block;
	position: absolute;
	left: 0;
	width: 40px;
	height: 4px;
	background-color: #000000;
	border-radius: 4px;
}

JavaScriptでhamburger( id=”hamburger” )がクリックされたら、ファンクション hamburger を呼び出します。

ファンクション hamburger を呼び出すと、toggleでクラスの追加と削除が交互に繰り返します。

<script>
	function hamburger() {
		document.getElementById('line1').classList.toggle('line1');
		document.getElementById('line2').classList.toggle('line2');
		document.getElementById('line3').classList.toggle('line3');
		document.getElementById('nav-container').classList.toggle('nav-container_open');
	}

	document.getElementById('hamburger').addEventListener('click' , function () {
		hamburger();
	} );
</script>

toggleによってクラスが追加された場合、ラインを以下の図のようにCSSで変化させます。#line2は透過に消します。

.line1 {
	/*-45度回転させる*/
	transform: translateY(10px) rotate(-45deg);
	top: 0;
 	transition: 0.1s;
}
.line2 {
	/*消す*/
	opacity: 0;
	transition: 0.1s;
}
.line3 {
	/*45度回転させる*/
	transform: translateY(-11px)  rotate(45deg);
	bottom: 0;
	transition: 0.1s;
}

すべてのHTML/JavaScript/CSSが完成すると以下のような感じになります。

みなさんよかったら試してみてください!

プロフィール

管理者 HONDA

福島県出身

ITで商売を効率化したいが、ITが苦手、分からない方是非ご相談ください。50過ぎの「おっさん」です。そのほうが話しやすい方はお勧めします。

カテゴリ

美容

ファッション

お酒


西暦和暦干支年齢対応表


設定

時計表示

都道府県

ブックマーク1

ブックマーク2

ブックマーク3

プライバシーポリシー

はじめに

HONDA WORK SHOPでは、ご利用のユーザ様個人情報の取り扱いに細心の注意を払っております。

また当サイトではアフィリエイトプログラムを利用しております。

第三者配信事業者(Amazonアソシエイト、楽天アフィリエイト、A8.net)がCookie を使用して、サイト利用者が当サイトや他のサイトに過去にアクセスした際の情報に基づいて広告を配信します。

Google が広告 Cookie を使用することにより、サイト利用者が当サイトや他のサイトにアクセスした際の情報に基づいて、Google やそのパートナーは適切な広告をサイト利用者に対して表示します。

広告設定でパーソナライズ広告を無効にすることができます。

Cookieの利用について

Cookieは、当サイトや他サイトへのアクセスに関する情報が含まれており、多くのサイトで利用者に有益な機能を提供する目的で使用されています。

Cookieには、サイト利用者の個人情報(氏名、住所、メールアドレス、電話番号)は一切含まれません。

アクセス解析ツールについて

当サイトでは、アクセス解析ツール「Google Analytics」を利用しています。

「Google Analytics」はトラフィックデータの収集のためにCookieを使用しています。

このトラフィックデータは匿名で収集されており、個人を特定するものではありません。

この機能はCookieを無効にすることで収集を拒否することができますので、ご利用のブラウザ設定をご確認のうえ、拒否設定を行ってください。

本ポリシーの変更

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。