モーダルウィンドウでメニュー画面を作成しています。
モーダルを開いている間は背景を動かさないようにして、
モーダルを閉じたら元々スクロールしていた場所に戻りたいのにどうしても上に戻ってしまいます。
勉強不足で申し訳ないんですが、お分かりになる方教えて頂きたいです。
該当のソースコード
HTML部分
<div id="header"> <div class="hamburger-back"></div> <div class="hamburger"> <span></span> <span></span> <span></span> </div> <nav class="globalMenuSp"> <table> <tr> <td colspan="2"><a href="♯">○○○</span></a></td> </tr> <tr> <td><a href="♯">○○○</span></a></td> <td><a href="♯">○○○</span></a></td> </tr> <tr> <td><a href="♯">○○○</span></a></td> <td><a href="♯">○○○</span></a></td> </tr> <tr> <td><a href="♯">○○○</span></a></td> <td><a href="♯">○○○</span></a></td> </tr> </table> </nav> </div>
css部分
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript"> $(function() { $('.hamburger').click(function() { $(this).toggleClass('active'); if ($(this).hasClass('active')) { $('.globalMenuSp').addClass('active'); } else { $('.globalMenuSp').removeClass('active'); } }); }); $('.globalMenuSp a[href]').on('click', function(event) { $('.hamburger').trigger('click'); }); $(function(){ var scrollPosition; $(".hamburger").click(function() { scrollPosition = $(window).scrollTop(); $('body').toggleClass('fixed').css({'top': -scrollPosition}); return false; }); $(".globalMenuSp a[href]").on("click", function() { $('body').removeClass('fixed').css({'top': 0}); $(window).scrollTop(scrollPosition); return false; }); }); </script>/* ハンバーガーボタン */ .hamburger-back{ background: #fff; display: block; position: fixed; top: 0; right: 0; width: 55px; height: 53px; z-index: 14; } .hamburger { display : block; position: fixed; z-index : 100; right : 6px; top : 6px; width : 42px; height: 42px; cursor: pointer; text-align: center; } .hamburger span { display : block; position: absolute; width : 30px; height : 1px ; left : 6px; background : #191919; -webkit-transition: 0.3s ease-in-out; -moz-transition : 0.3s ease-in-out; transition : 0.3s ease-in-out; } .hamburger span:nth-child(1) { top: 10px; } .hamburger span:nth-child(2) { top: 20px; } .hamburger span:nth-child(3) { top: 30px; } /* ナビ開いてる時のボタン */ .hamburger.active { -webkit-transition: all 0.3s ease-in-out; -o-transition : all 0.3s ease-in-out; transition : all 0.3s ease-in-out; -webkit-transition-delay: 0.6s; -o-transition-delay : 0.6s; transition-delay : 0.6s; -webkit-transform: rotate(45deg); -ms-transform : rotate(45deg); -o-transform : rotate(45deg); transform : rotate(45deg); } .hamburger.active span:nth-child(2){ width: 0px; } .hamburger.active span:nth-child(1), .hamburger.active span:nth-child(3){ background :#191919; -webkit-transition-delay: 0.3s; -o-transition-delay: 0.3s; transition-delay: 0.3s; } .hamburger.active span:nth-child(1){ -webkit-transform: translateY(4px); -ms-transform : translateY(4px); -o-transform : translateY(4px); transform : translateY(4px); } .hamburger.active span:nth-child(3){ -webkit-transform: translateY(-16px) rotate(90deg); -ms-transform: translateY(-16px) rotate(90deg); -o-transform : translateY(-16px) rotate(90deg); transform : translateY(-16px) rotate(90deg); } .globalMenuSp { position: fixed; z-index : 90; top : 0; right: 0; background:#f7f7f7; text-align: center; width: 100%; height: 100%; opacity: 0; transition: opacity .6s ease, visibility .6s ease; font-size: 15px; pointer-events: none; } .globalMenuSp table { border-collapse: collapse; border-spacing: 0; width: 100%; } .globalMenuSp table th,td { border: solid 1px #e0e0e0; } .globalMenuSp table td{ background: -webkit-linear-gradient(-45deg, #ffa3ff, #50f2ed); -webkit-background-clip: text; -webkit-text-fill-color:transparent; font-family: 'Poiret One', cursive; font-weight: 600; font-size: 20px; } .globalMenuSp a { display: block; padding: 8px 0; text-decoration :none; } .globalMenuSp span{ display: block; font-size: 11px; background: #a3a3a3; -webkit-background-clip: text; -webkit-text-fill-color:transparent; font-weight: normal; } /* このクラスを、jQueryで付与・削除する */ .globalMenuSp.active { opacity: 100; pointer-events: auto; } body.fixed { position: fixed; width: 100%; height: 100%; left: 0; } ```js部分
### 試したこと とにかく、沢山試しました。 付けたり、はいだり。
回答2件
あなたの回答
tips
プレビュー