Edit in JSFiddle

$('.header-menu-btn').on('click',function(){
  $(this).toggleClass('is-open');
  $('.nav').toggleClass('is-open');
  $('.overlay').fadeToggle();
});
$(".js-accordion").on('accordion', function() {
	console.log($(this));
	if( $(this).hasClass('is-open') ) {
		$(this).removeClass('is-open');
	}
});
$('.js-accordion').on('click',function(){
	if( $(this).hasClass('is-open') ) {
		$(this).removeClass('is-open');
	}else {
		$(this).addClass('is-open');
		$(".js-accordion").not($(this)).trigger('accordion');
	}
});
<div class="overlay"></div>
<header class="header" role="banner" itemscope="itemscope" itemtype="http://schema.org/WPHeader">
	<div class="header-top">
		<h1 class="header-logo">Responsive Menu</h1>
		<span class="header-menu-btn is-sp"></span>
	</div>
	<nav class="nav" role="navigation" itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement" class="is-open">
		<ul class="nav-parent cf">
			<li itemprop="name" class="nav-html"><a href="#" itemprop="URL">HTML</a></li>
			<li itemprop="name" class="nav-css"><a href="#" itemprop="URL">CSS</a></li>
			<li itemprop="name" class="nav-js"><a href="#" itemprop="URL">JavaScript</a></li>
			<li itemprop="name" class="nav-cms js-accordion">
				<a href="#" itemprop="URL">CMS</a>
				<div class="l-megaMenu">
					<div class="megaMenu">
						<p class="megaMenu-heading">主なCMS</p>
						<ul class="nav-children megaMenu-body">
							<li><a href="#">
								<img src="https://unsplash.it/300/200?random" class="is-pc">
								<p class="megaMenu-title">WordPress</p>
							</a></li>
							<li><a href="#">
								<img src="https://unsplash.it/300/200?random" class="is-pc">
								<p class="megaMenu-title">Movabletype</p>
							</a></li>
							<li><a href="#">
								<img src="https://unsplash.it/300/200?random" class="is-pc">
								<p class="megaMenu-title">concrete5</p>
							</a></li>
						</ul>
					</div>
				</div>
			</li>
			<li itemprop="name" class="nav-gulp js-accordion">
				<a href="#" itemprop="URL">Gulp</a>
				<div class="l-megaMenu">
					<div class="megaMenu">
						<p class="megaMenu-heading">プラグイン</p>
						<ul class="nav-children megaMenu-body">
							<li><a href="#">
								<img src="https://unsplash.it/300/200?random" class="is-pc">
								<p class="megaMenu-title">gulp-sass</p>
							</a></li>
							<li><a href="#">
								<img src="https://unsplash.it/300/200?random" class="is-pc">
								<p class="megaMenu-title">gulp-sass</p>
							</a></li>
						</ul>
					</div>
				</div>
			</li>
		</ul>
	</nav>
</header>
a {
	color: #000;
}
@media screen and (max-width: 768px) {
	.is-pc {
		display: none;
	}
	.overlay {
		background: rgba(0, 0, 0, 0.8);
		display: none;
		height: 100%;
		left: 0;
		position: absolute;
		top: 0;
		width: 100%;
		z-index: 10;	
	}
}
.header {
	@media screen and (max-width: 768px) {
		&-top {
			height: 50px;
			overflow: hidden;
			background: #fff;
			position: relative;
			z-index: 1000;
		}
		&-logo {
			float: left;
			margin: 15px 0 0 15px;
		}
		&-menu-btn {
			float: right;
			height: 30px;
			background: transparent;
			border-top: 1px solid;
			border-bottom: 1px solid;
			position: relative;
			display: block;
			width: 50px;
			margin: 15px 15px 0 0;
			cursor: pointer;
			color: inherit;
			font-size: 0;

			transition: height 0.35s 0.35s,
			border-color 0.35s 0.35s;
			&:before,
			&:after {
				display: block;
				position: absolute;
				top: 50%;
	    		transform: translate(-50%, -50%);
				transform-origin: 50% 50%;
				left: 50%;
				width: 100%;
				height: 1px;
				background: currentColor;
				content: "";
				transition: transform 0.35s;
			}
			&.is-open {
				border-color: transparent;
				transition: all 0.35s 0s;
				&:before {
					transform: translate(-50%, -50%) rotate(45deg);
					transition-delay: 0.5s;
				}
				&:after {
					transform: translate(-50%, -50%) rotate(-45deg);
					transition-delay: 0.5s;
				}
			}
		}
	}
}
.nav {
	@media screen and (max-width: 768px) {
		position: relative;
		z-index: 100;
		background: #ddd;
		opacity: 0;
		visibility: hidden;
		margin-top: -100%;
		transition: 0.1s opacity,
					0.1s visibility,
					0.1s margin;
		&.is-open {
			opacity: 1;
			visibility: visible;
			margin-top: 0;
			transition: 0.5s opacity,
						0.5s visibility,
						0.5s margin;
			
		}
		&-parent {
			> li {
				border-top: 1px solid #ddd;
			}
		}
		&-children {
			background: #fff;
			opacity: 0;
			visibility: hidden;
			max-height: 0;
			transition: 0.1s opacity,
						0.5s visibility,
						0.1s max-height;
			> li {
				
			}
			.js-accordion.is-open & {
				opacity: 1;
				visibility: visible;
				max-height: 200px;
				transition: 0.5s opacity,
							0.5s visibility,
							0.5s max-height;
			}
		}
	}
	@media screen and (min-width: 769px) {
		
	}
}