webデザイン・コーディングに役立つ情報、WordPressカスタムに使えるHTML・CSSコピペ用コード、Canva無料テンプレートなどをご紹介します♩

chiweblogちいウェブログ

【jQuery】ドロップダウンメニュー矢印付き(addclass)

ドロップダウンメニューjQuery矢印付き
この記事を書いている人
Marie

Marie

  • フリーランスwebデザイナー&講師
  • 制作会社・インハウスデザイナーを経験し独立
  • オンラインwebデザイン教室ちいウェブ運営
  • 仕事の合間の息抜きに植物を育てています♡
  • スプラ・DIY・将棋がすき
  • 小4・年長の母

HTML

<nav>
	<ul class="menu">
		<li><a href="">MENU1</a></li>
		<li class="slidedown"><a href="">MENU2</a>
			<ul class="sub_menu">
				<li><a href="">SUB1</a></li>
				<li><a href="">SUB2</a></li>
				<li><a href="">SUB3</a></li>
			</ul>
		</li>
		<li	class="slidedown"><a href="">MENU3</a>
			<ul class="sub_menu">
				<li><a href="">SUB1</a></li>
				<li><a href="">SUB2</a></li>
				<li><a href="">SUB3</a></li>
			</ul>
		</li>
		<li	class="slidedown"><a href="">MENU4</a>
			<ul class="sub_menu">
				<li><a href="">SUB1</a></li>
				<li><a href="">SUB2</a></li>
			</ul>
		</li>
		<li><a href="">MENU5</a></li>
	</ul>
</nav>

jQuery

jQueryでclassを付与します。

	$(function() {
		$(".menu li").hover(
				function() {
						$(this).addClass("open");
				}, function() {
						$(this).removeClass("open");
				}
		);
});

このclassを使って、CSSで表示・非表示を切り替えます。

CSS

nav {
	width: 100%;
	height: auto;
	padding: 20px;
	margin: auto;
}
.menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	text-align: center;
}
.menu li {
	background: #669;
	letter-spacing: 2px;
	position: relative;
}
.menu li a {
	display: block;
	padding: 20px;
	color: white;
	box-sizing: border-box;
	width: 100%;
	z-index: 0;
	position: relative;
}
.slidedown {
	z-index: auto;
	position: relative;
}
.slidedown::after {
	font-family: "Font Awesome 5 Free";
	content: '\f078';
	font-weight: 900;
	color: white;
	transition: .6s;
	position: absolute;
	right: 10px;
	top: 0;
	bottom: 0;
	margin: auto;
	height: fit-content;
}
.slidedown.open {
	z-index: 1;
}
.slidedown.open::after {
	transform: rotate(-180deg);
	color: #ffc800;
}
.sub_menu {
	width: 100%;
	display: none;
}
.open .sub_menu {
	display: block;
	animation: slide_down 1s forwards;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 2424;
}
@keyframes slide_down {
	from {}
	to {
		padding-top: 10px;
	}
}
.slidedown {
	padding-right: 10px;
	display: flex;
	align-items: center;
}
.sub_menu li {
	background: #b9f;
}
.menu li:hover {
	opacity: .9;
}
.menu li:hover .sub_menu li {
	opacity: 1;
}
.menu li a:hover {
	color: #ffc800;
}

@media screen and (max-width: 680px) {
	.menu li {
		width: 50%;
	}
	.sub_menu li {
		width: 100%;
		z-index: 444;
		position: relative;
	}
	.open .sub_menu {
		animation: inherit;
	}
}

Font Awesome

矢印はFont Awesomeを使っています。

Font Awesomeはアイコンをフォントとして使えるサービスです。

私がコーディングを始めた時に購入した本に載っていて、そこからずっと愛用しています。

無料プランだと月間1万ページビューらしく、1万を超えてからは出たり出なかったりしています。

ビューが1万を超えるようなら有料プランか別のアイコンフォントを使用した方が良いですね。

いいなと思ったら
TAPしてね♡↓

合わせて読んでほしい記事

コメントする

CAPTCHA


コメントは承認後に表示されます。

Home Webデザイン コーディング コピペ用コード 【jQuery】ドロップダウンメニュー矢印付き(addclass)

関連記事

更新通知を受け取る

不定期更新の為、
メールにて更新お知らせを
お送りいたしますlove letter

(更新通知以外のメールは
お送りしませんので
ご安心ください)