JSFiddle - React, Tailwind, and code Playground

by jun68ykt

HTML

<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
<div id="spbatsu" class="pcnone">
    <!-- 三本線のメニュー、cssアニメーションで×になる1 -->
    <a class="menu-trigger" href="#">
        <span></span>
        <span></span>
        <span></span>
    </a>
</div>
<!-- ドロップダウンで表示される内容1 -->
<div id="panel">
    <div id="panel_in">
        <ul id="panel_in_ul">
            <li class="spmenuin_li"><a href="#">トップページ</a></li>
            <li class="spmenuin_li spyazi">
                <a href="#" class="panel_in_li">店舗一覧</a>
                <ul class="spmenuin_li_in">
                    <li><a href="http://example#sample" class="spmenuin_li_in_li">●●店</a></li>
                    <li><a href="http://example#sample2" class="spmenuin_li_in_li">●●店</a></li>
                </ul>
            </li>
            <li class="spmenuin_li spyazi">
                <a href="#" class="panel_in_li">メニュー</a>
                <ul class="spmenuin_li_in">
                    <li><a href="#" class="spmenuin_li_in_li">ランチメニュー</a></li>
                    <li><a href="#" class="spmenuin_li_in_li">ディナーメニュー</a></li>
                </ul>
            </li>
        </ul>
    </div>
</div>
<div id="spbatsu2" class="pcnone">
    <!-- 三本線のメニュー、cssアニメーションで×になる2 -->
    <a class="menu-trigger2 menu-toggle" href="#">
        <span></span>
        <span></span>
        <span></span>
    </a>
</div>
<!-- ドロップダウンで表示される内容2 -->
<div id="panel2">
    <div id="panel_in2">
        <p class="yoyakup">レストラン</p>
        <div class="spbtm"><a href="#" class='menu-toggle'>予約</a></div>
        <p><a href="tel:0123456789" class="sp_tel_ablack menu-toggle">0123456789</a></p>
        <p>定休日:なし</p>
        <hr/>
        <p class="yoyakup">カフェ</p>
        <div class="spbtm"><a href="#" class='menu-toggle'>予約</a></div>
        <p><a href="tel:0123456789" class="sp_tel_ablack menu-toggle">0123456789</a></p>
        <p>定休日:なし</p>
    </div>
</div>

CSS

#panel {
    display: none;
    width: 100%;
    margin: 0;
    padding: 20px 0 35px 50px;
    background: #fff;
    z-index: 100;
    position: fixed;
    top: 60px;
    font-size: 13px;
    overflow-y: scroll;
    width: 100%;
    height: 100%;
}

#panel a {
    color: #000;
}

#panel2 {
    display: none;
    width: 100%;
    margin: 0;
    padding: 0;
    background: #fff;
    z-index: 100;
    position: fixed;
    top: 60px;
    right: 0px;
    font-size: 13px;
    overflow-y: scroll;
    width: 100%;
    height: 100%;
}

#panel_in2 {
    padding: 20px;
    text-align: center;
}

#panel_in2 .yoyakup {
    padding-bottom: 0.5em;
    font-weight: bold;
}

.panel_in_li {
    font-size: 13px;
}

.menu-trigger,
.menu-trigger span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
    z-index: 100;
}

.menu-trigger {
    position: relative;
    position: fixed;
    width: 32px;
    height: 16px;
}

.menu-trigger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: #000;
}

.menu-trigger span:nth-of-type(1) {
    top: 0;
}

.menu-trigger span:nth-of-type(2) {
    top: 7px;
}

.menu-trigger span:nth-of-type(3) {
    bottom: 0;
}

.menu-trigger.active span:nth-of-type(1) {
    -webkit-transform: translateY(7px) rotate(-45deg);
    transform: translateY(7px) rotate(-45deg);
}

.menu-trigger.active span:nth-of-type(2) {
    opacity: 0;
}

.menu-trigger.active span:nth-of-type(3) {
    -webkit-transform: translateY(-7px) rotate(45deg);
    transform: translateY(-7px) rotate(45deg);
}

#spbatsu {
    width: 32px;
    position: absolute;
    top: 20px;
    left: 15px;
}

.menu-trigger2,
.menu-trigger2 span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
    z-index: 100;
}

.menu-trigger2 {
    position: relative;
    position: fixed;
    width: 32px;
    height: 16px;
}

.menu-trigger2 span {
    position: absolute;
    left: 0;
    width: 100%;
    height:...

JavaScript

$(function(){
	
  $(".menu-trigger").click(function() {
    $("#panel").slideToggle(350);
    $(".menu-trigger").toggleClass('active');
    $(".menu-trigger2").removeClass('active');
    $("#panel2").slideUp(350);
    return false;
  });
  
	$(".spmenuin_li a").click(function(){
  	$(this).next("ul").slideToggle();
  	$(this).toggleClass("open");
	});
  
  var menuTrigger2Handler = function(event) {
    $("#panel2").slideToggle(350);
    $(".menu-trigger2").toggleClass('active');
    $(".menu-trigger").removeClass('active');
    $("#panel").slideUp(350);
    return $(this).attr('href').match(/^tel:/) || $(this).text() == '予約' ? true : false;
  };

 $(".menu-toggle").click(menuTrigger2Handler);  
});