htmlサイトでスマホでハンバーガーメニューを設置して、動かしていたところ、実機と、検証ツールでスマホにして確認した時のみ、メニューが閉じません。
ブラウザ幅を小さくした時にはきちんととじるのですが。。。
//現状説明の追加
検証ツールでのスマホの表示と実機に対して、ブラウザをただ小さくして表示してみる事の違いは何でしょう。わかる方教えてください。
class="fixed open"であれば、メニューが表示され、class="fixed"であれば、表示はされず閉じた状態になります。
検証ツールでのスマホの表示と実機に対して、ブラウザをただ小さくして表示してみる事でのデベロッパーツール elementの違いは、class="fixed open"が書き換わらないところです。なぜ、書き換わらないのでしょう。×ボタンを押すときには書き換わります。
(function($) { $(function() { var $header = $('#top-head'); var $headera = $('#top-head a'); // Nav Fixed $(window).scroll(function() { if (window.innerWidth > 768) { if ($(window).scrollTop() > 300) { $header.addClass('fixed'); $headera.addClass('fixed'); } else { $header.removeClass('fixed'); $headera.removeClass('fixed'); } } else { $header.addClass('fixed'); $headera.addClass('fixed'); } }); // Nav Toggle Button $('#nav-toggle').click(function(){ $header.toggleClass('open'); }); // Nav Toggle Button close $('#global-nav ul a').on('click', function(){ if (window.innerWidth <= 768) { $('#nav-toggle').click(); } }); }); })(jQuery);
html
<link rel="stylesheet" media="screen and (max-width:640px)" href="hoge.css" > <header id="top-head"> <div class="inner clearfix"> <div id="mobile-head"> <div id="nav-toggle"> <div> <span></span> <span></span> <span></span> </div> </div> </div> <nav id="global-nav"> <ul> <li><a href="#next"><span>CONCEPT</span></a></li> <li><a href="#store"><span>STORE</span></a></li> <li><a href="#menu"><span>MENU</span></a></li> <li><a href="#map"><span>MAP</span></a></li> <li><a href="mailto:user@dammy.com?subject=サイトからの問い合わせ"><span>CONTACT</span></a></li> </ul> </nav> </div> </header> <script type="text/javascript" src="hoge.js"></script> コード
CSS
position: absolute; width: 100%; top: -100px; margin: 100px auto 0; padding: 30px 0 10px; background: rgba(255,255,255,.7); z-index: 999; } #top-head a, #top-head { color: #0F0F0F; text-decoration: none; } #top-head .inner { position: relative; } /* Fixed */ #top-head.fixed { margin-top: 0; top: 0; position: fixed; background-color: #0F0F0F; transition: top 0.65s ease-in; -webkit-transition: top 0.65s ease-in; -moz-transition: top 0.65s ease-in; } #top-head a.fixed { color: #F0F0F0; } #top-head .inner { position: relative; } /* Toggle Button */ #nav-toggle { display: none; } #nav-toggle div { position: relative; } #nav-toggle span { display: block; position: absolute; height: 4px; width: 100%; background: #F0F0F0; left: 0; -webkit-transition: 0.35s ease-in-out; -moz-transition: 0.35s ease-in-out; transition: 0.35s ease-in-out; } #nav-toggle span:nth-child(1) { top: 0; } #nav-toggle span:nth-child(2) { top: 11px; } #nav-toggle span:nth-child(3) { top: 22px; } #global-nav ul { position: absolute; right: 0; bottom: 0; } #global-nav ul li { float: left; font-size: 20px; letter-spacing: 0.1em; } #global-nav ul li a { padding-right: 30px; } #global-nav ul li a:hover { color:#D65050; } コード
スマホcss
#top-head, .inner { width: 100%; padding: 0; } #top-head { top: 0; margin-top: 0; } /* Fixed reset */ #top-head.fixed { padding-top: 0; background: transparent; } #top-head #global-nav ul li a, #top-head.fixed #global-nav ul li a { display: block; width: 100%; padding: 18px 0; font-size: 26px; color: #D65050; letter-spacing: 0.3em; } #top-head, .inner { width: 100%; padding: 0; } #mobile-head { background: #0F0F0F; width: 100%; height: 75px; z-index: 999; position: relative; } /* #global-nav スライドアニメーション */ .open #global-nav { /* #global-nav top + #mobile-head height */ -moz-transform: translateY(556px); -webkit-transform: translateY(556px); transform: translateY(556px); } #nav-toggle { display: block; position: absolute; right: 0px; width: 50px; height: 75px; padding: 25px 15px 0px 0px; cursor: pointer; z-index: 101; } /* #nav-toggle 切り替えアニメーション */ .open #nav-toggle span:nth-child(1) { top: 11px; -webkit-transform: rotate(315deg); -moz-transform: rotate(315deg); transform: rotate(315deg); } .open #nav-toggle span:nth-child(2) { width: 0; left: 50%; } .open #nav-toggle span:nth-child(3) { top: 11px; -webkit-transform: rotate(-315deg); -moz-transform: rotate(-315deg); transform: rotate(-315deg); } #global-nav { position: absolute; top: -500px; background: #333333; width: 100%; text-align: center; -webkit-transition: 0.5s ease-in-out; -moz-transition: 0.5s ease-in-out; transition: 0.5s ease-in-out; } #global-nav ul { list-style: none; position: static; right: 0; bottom: 0; font-size: 14px; } #global-nav ul li { float: none; position: static; border-top: #777777 1px solid; } #global-nav ul li:last-child { border-bottom: #777777 1px solid; } #top-head #global-nav ul li a, #top-head.fixed #global-nav ul li a { display: block; width: 100%; padding: 18px 0; font-size: 26px; color: #D65050; letter-spacing: 0.3em; } /* #global-nav スライドアニメーション */ .open #global-nav { /* #global-nav top + #mobile-head height */ -moz-transform: translateY(556px); -webkit-transform: translateY(556px); transform: translateY(556px); } コード
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー