質問させていただきます。
初めての投稿のため、不備やおかしなところがあった際は教えていただければと思います。
現在スマホ用のサイト作りを練習しており、ナビメニューを表示する際JQueryを使用してナビメニューの開閉を行いたいと考えております。
開閉は思い通りにできたのですがテキストの切り替えがうまくいきません。
<div class="side-menu-btn" id="js__sideMenuBtn"><div class="btn_text">MENU</div></div> side-menu-btnがクリックされた際、子要素のbtn_textのMENUの文字をCLOSEに切り替えたのですが思い通りにならないです。JQueryを勉強し始めたばかりなので書き方が間違っていると思いますが他にいろいろためしましたが自分では解決できません。
解決方法や参考になるサイト等ございましたらご教授の程、よろしくお願いいたします。
html
<body> <!-- サイドオープン時メインコンテンツを覆う --> <div class="overlay" id="js__overlay"></div> <!-- サイドメニュー --> <nav class="side-menu" > <ul> <li><a href="#">メニュータイトル</a></li> <li><a href="#">メニュータイトル</a></li> <li><a href="#">メニュータイトル</a></li> </ul> </nav> <!-- 開閉用ボタン --> <div class="side-menu-btn" id="js__sideMenuBtn"><div class="btn_text">MENU</div></div> <!-- メインコンテンツ --> <div class="wrapper"> <header class="header"> <h1>ヘッダータイトル</h1> <p>ヘッダー</p> </header> <footer class="footer"> <p>フッター</p> </footer> </div> <?php wp_footer(); ?> </body>
js
$(function(){ //メインメニュー var $body = $('body'); $('#js__sideMenuBtn').on('click', function () { $body.toggleClass('side-open'); $('#js__overlay').on('click', function () { $body.removeClass('side-open'); }); }); //文字の切り替え $('.side-menu-btn').on('click', function () { $('this').children('.btn_text').text('CLOSE'); $('.side-menu-btn').on('click', function () { $('this').children('.btn_text').text('MENU'); }); }); });
css
/* サイドオープン時にメインコンテンツを覆う部分 */ .overlay { /* content: ''; */ visibility: hidden; position: fixed; top: 0; left: 0; display: block; width: 100%; height: 100%; -webkit-transition: all .5s ease; transition: all .5s ease; z-index: 3; } .overlay::after { /* content: "この部分をクリックで閉まる"; */ visibility: hidden; position: fixed; top: 40%; left: 0; display: block; width: 100%; height: 100px; color: rgba(255,255,255,0); font-size: 40px; font-weight: bold; text-align: center; -webkit-transition: all .5s ease; transition: all .5s ease; } .side-open .overlay { visibility: visible; cursor: pointer; background: rgba(0,0,0,.7); } .side-open .overlay::after { visibility: visible; color: rgba(255,255,255,.8); } /* サイドメニュー */ .side-menu { position: fixed; top: 0; right: 0; width: 600px; height: 100%; padding-top: 150px; text-align: center; font-size: 26px; background: #008de5; z-index: 1; visibility: hidden; } /* 開閉用ボタン */ .side-menu-btn { position: fixed; top: 20px; right: 20px; width: 160px; height: 40px; padding: 20px 0; text-align: center; background: #d7d7d7; cursor: pointer; z-index: 4; } .btn_text { font-size: 30px; } /* メインコンテンツ */ .wrapper { position: relative; width: 100%; height: 100%; text-align: center; font-size: 13px; background: #F8F8F8;/* 意味なし */ -webkit-transition: all .5s ease; transition: all .5s ease; z-index: 2; } /* メインコンテンツ内のスタイル */ .header { padding: 100px 0; background: #161616; color: #fff; } .header h1, .contents h1 { margin-bottom: 30px; font-size: 20px; } .contents { width: 100%; padding: 150px 0; background: #f5f5f5; } .contents p { margin-bottom: 50px; } .footer { padding: 150px 0; background: #fff; } /* サイドメニューオープン */ .side-open .wrapper, .side-open .overlay { -webkit-transform: translate3d(-600px, 0, 0); transform: translate3d(-600px, 0, 0); } .side-open .side-menu { visibility: visible; }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/05 08:51