スマホサイトで下へスクロールしてモーダルメニューをクリックすると、モーダルメニューが開かずにページのTOPへ移動してしまいます。
(現在スクロールしたページ内からモーダルメニューが消えてしまい、画面も固定されたまま。)
下記は参考にさせて頂いたサイトです。
https://blog.mismithportfolio.com/web/20150529scrollfixed
モーダルをクリックしても、スクロールした位置の画面上に表示させるにはどうしたら良いでしょうか。
お分かりの方、ご教授お願い致します。
script
1 $(function(){ 2 $("#menu").css("display","none"); 3 $("#menu-bt").on("click", function() { 4 $("#menu").slideToggle(300); 5 $(this).toggleClass("active"); 6 if($(this).hasClass("active")){ 7 $("#drower").attr('src','閉じるボタン'); 8 }else{ 9 $("#drower").attr('src','メニューボタン'); 10 } 11 }); 12 }); 13 14 $(function(){ 15 var state = false; 16 var scrollpos; 17 18 $('#drower').on('click', function(){ 19 if(state == false) { 20 scrollpos = $(window).scrollTop(); 21 $('body').addClass('fixed').css({'top': -scrollpos}); 22 $('#menu').addClass('open'); 23 state = true; 24 } else { 25 $('body').removeClass('fixed').css({'top': 0}); 26 window.scrollTo( 0 , scrollpos ); 27 $('#menu').removeClass('open'); 28 state = false; 29 } 30}); 31 32}); 33
html
1 2<section> 3 <div id="menu-bt"> 4 <img src="メニューボタン" id="drower" /> 5 </div> 6 <!-------------------------------------- modal ---------------------------------------> 7 <nav id="menu"> 8 <ul> 9 <li><a href="#">menu1</a></li> 10 <li><a href="#">menu2</a></li> 11 <li><a href="#">menu3</a></li> 12 <li><a href="#">menu4</a></li> 13 <li><a href="#">menu5</a></li> 14 <li><a href="#">menu6</a></li> 15 <li><a href="#">menu7</a></li> 16 </ul> 17 </nav> 18 </section> 19
css
1.fixed { 2 position: fixed; 3 width: 100%; 4 height: 100%; 5} 6 7#menu ul { 8 width: 100%; 9 height: 100%; 10 overflow-y: scroll; 11 -webkit-overflow-scrolling:touch; 12} 13 14 15section.pc-hidden.padding { 16 padding: 0; 17} 18 19nav#menu{ 20 width: 100%; 21 padding: 30px 0; 22 background-color: rgba(0,0,0,0.9); 23} 24 25nav#menu ul{ 26 margin: 0px; 27 padding: 0px; 28 font-size: 0.8rem; 29} 30 31nav#menu ul li{ 32 list-style-type: none; 33} 34 35nav#menu ul li a{ 36 width: 100%; 37 display: block; 38 color: #fff; 39 text-align: center; 40 padding: 15px 0px; 41} 42nav#menu ul li a.top_padding{ 43 padding-top: 40px; 44} 45nav#menu ul li a.bottom_padding{ 46 padding-bottom: 40px; 47} 48 49
あなたの回答
tips
プレビュー