質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

0回答

1436閲覧

ドロワーメニュー表示時に、 背景が横スクロールしてしまう

km9981

総合スコア5

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2019/11/21 06:37

前提・実現したいこと

スマホ実機で見ると、
モバイル時のドロワーメニュー表示時に、
背景が横スクロールしてしまう
(ドロワーと背景が一緒にスライドします)

ドロワーメニューの表示にpushyというjqueryプラグインを使用しております。
» Pushy – Off-Canvas Navigation Menu

問題のサイトはこちらです
★弊社サイト

該当のソースコード

ドロワーメニュー部分のみですがHTML

html

1 2<nav class="pushy pushy-left"> 3 <div class="pushy-content"> 4 <ul> 5 <li class="pushy-link"><a href="https://store.shopping.yahoo.co.jp/exmail/"><img src="../img/logo_sp.png" class="offcanvas-logo" alt="ロゴ"></a></li> 6 <li class="pushy-link"><a href="https://store.shopping.yahoo.co.jp/exmail/guide.html">お支払い方法/配送/返品</a></a></li> 7 <li class="pushy-link"><a href="https://store.shopping.yahoo.co.jp/exmail/info.html" ><i class="fas fa-building fa-fw "></i>会社概要</a></li> 8 <li class="pushy-link"><a href="https://talk.shopping.yahoo.co.jp/contact/exmail#" ><i class="fas fa-envelope fa-fw"></i>お問い合わせ</a></li> 9 </ul> 10 </div> 11</nav>

css

1.pushy { 2 z-index: 10000; 3 background: #fff; 4 width: 300px; 5} 6 7.pushy-left{ 8 transform: translate3d(-300px,0,0); 9} 10 11.pushy-open-left #container, 12.pushy-open-left .push { 13 transform: translate3d(300px, 0, 0); 14} 15 16.pushy-right { 17 transform: translate3d(300px, 0, 0); 18} 19 20.pushy-open-right #container, 21.pushy-open-right .push { 22 transform: translate3d(-300px, 0, 0); 23}

pushy.js

jquery

1/*! Pushy - v1.3.0 - 2019-6-25 2* Pushy is a responsive off-canvas navigation menu using CSS transforms & transitions. 3* https://github.com/christophery/pushy/ 4* by Christopher Yee */ 5 6(function ($) { 7 var pushy = $('.pushy'), //menu css class 8 body = $('body'), 9 push = $('.push'), //css class to add pushy capability 10 pushyLeft = 'pushy-left', //css class for left menu position 11 pushyOpenLeft = 'pushy-open-left', //css class when menu is open (left position) 12 pushyOpenRight = 'pushy-open-right', //css class when menu is open (right position) 13 siteOverlay = $('.site-overlay'), //site overlay 14 menuLinkFocus = $(pushy.data('focus')), //focus on link when menu is open 15 menuSpeed = 200, //jQuery fallback menu speed 16 menuWidth = pushy.width() + 'px', //jQuery fallback menu width 17 submenuClass = '.pushy-submenu', 18 submenuOpenClass = 'pushy-submenu-open', 19 submenuClosedClass = 'pushy-submenu-closed', 20 submenu = $(submenuClass); 21 22 //check if menu-btn-class data attribute exists 23 if( typeof pushy.data('menu-btn-class') !== 'undefined' ){ 24 var menuBtnClass = pushy.data('menu-btn-class'); //take user defined menu button CSS class 25 }else{ 26 var menuBtnClass = '.menu-btn'; //set default menu button CSS class 27 } 28 29 //css classes to toggle the menu 30 var menuBtn = $(menuBtnClass + ', .pushy-link'); 31 32 //css class to focus when menu is closed w/ esc key 33 var menuBtnFocus = $(menuBtnClass); 34 35 // check if container-selector data attribute exists 36 var containerSelector = '#container'; 37 if (typeof pushy.data('container-selector') !== 'undefined') { 38 containerSelector = pushy.data('container-selector'); 39 } 40 var container = $(containerSelector); 41 42 43 //close menu w/ esc key 44 $(document).keyup(function(e) { 45 //check if esc key is pressed 46 if (e.keyCode == 27) { 47 48 //check if menu is open 49 if( body.hasClass(pushyOpenLeft) || body.hasClass(pushyOpenRight) ){ 50 if(cssTransforms3d){ 51 closePushy(); //close pushy 52 }else{ 53 closePushyFallback(); 54 opened = false; //set menu state 55 } 56 57 //focus on menu button after menu is closed 58 if(menuBtnFocus){ 59 menuBtnFocus.focus(); 60 } 61 62 } 63 64 } 65 }); 66 67 function togglePushy(){ 68 //add class to body based on menu position 69 if( pushy.hasClass(pushyLeft) ){ 70 body.toggleClass(pushyOpenLeft); 71 }else{ 72 body.toggleClass(pushyOpenRight); 73 } 74 75 //focus on link in menu after css transition ends 76 if(menuLinkFocus){ 77 pushy.one('transitionend', function() { 78 menuLinkFocus.focus(); 79 }); 80 } 81 82 } 83 84 function closePushy(){ 85 if( pushy.hasClass(pushyLeft) ){ 86 body.removeClass(pushyOpenLeft); 87 }else{ 88 body.removeClass(pushyOpenRight); 89 } 90 } 91 92 function openPushyFallback(){ 93 //animate menu position based on CSS class 94 if( pushy.hasClass(pushyLeft) ){ 95 body.addClass(pushyOpenLeft); 96 pushy.animate({left: "0px"}, menuSpeed); 97 container.animate({left: menuWidth}, menuSpeed); 98 //css class to add pushy capability 99 push.animate({left: menuWidth}, menuSpeed); 100 }else{ 101 body.addClass(pushyOpenRight); 102 pushy.animate({right: '0px'}, menuSpeed); 103 container.animate({right: menuWidth}, menuSpeed); 104 push.animate({right: menuWidth}, menuSpeed); 105 } 106 107 //focus on link in menu 108 if(menuLinkFocus){ 109 menuLinkFocus.focus(); 110 } 111 } 112 113 function closePushyFallback(){ 114 //animate menu position based on CSS class 115 if( pushy.hasClass(pushyLeft) ){ 116 body.removeClass(pushyOpenLeft); 117 pushy.animate({left: "-" + menuWidth}, menuSpeed); 118 container.animate({left: "0px"}, menuSpeed); 119 //css class to add pushy capability 120 push.animate({left: "0px"}, menuSpeed); 121 }else{ 122 body.removeClass(pushyOpenRight); 123 pushy.animate({right: "-" + menuWidth}, menuSpeed); 124 container.animate({right: "0px"}, menuSpeed); 125 push.animate({right: "0px"}, menuSpeed); 126 } 127 } 128 129 function toggleSubmenu(){ 130 //hide submenu by default 131 $(submenuClass).addClass(submenuClosedClass); 132 133 $(submenuClass).on('click', function(e){ 134 var selected = $(this); 135 136 if( selected.hasClass(submenuClosedClass) ) { 137 //hide same-level opened submenus 138 selected.siblings(submenuClass).addClass(submenuClosedClass).removeClass(submenuOpenClass); 139 //show submenu 140 selected.removeClass(submenuClosedClass).addClass(submenuOpenClass); 141 }else{ 142 //hide submenu 143 selected.addClass(submenuClosedClass).removeClass(submenuOpenClass); 144 } 145 // prevent event to be triggered on parent 146 e.stopPropagation(); 147 }); 148 } 149 150 //checks if 3d transforms are supported removing the modernizr dependency 151 var cssTransforms3d = (function csstransforms3d(){ 152 var el = document.createElement('p'), 153 supported = false, 154 transforms = { 155 'webkitTransform':'-webkit-transform', 156 'OTransform':'-o-transform', 157 'msTransform':'-ms-transform', 158 'MozTransform':'-moz-transform', 159 'transform':'transform' 160 }; 161 162 if(document.body !== null) { 163 // Add it to the body to get the computed style 164 document.body.insertBefore(el, null); 165 166 for(var t in transforms){ 167 if( el.style[t] !== undefined ){ 168 el.style[t] = 'translate3d(1px,1px,1px)'; 169 supported = window.getComputedStyle(el).getPropertyValue(transforms[t]); 170 } 171 } 172 173 document.body.removeChild(el); 174 175 return (supported !== undefined && supported.length > 0 && supported !== "none"); 176 }else{ 177 return false; 178 } 179 })(); 180 181 if(cssTransforms3d){ 182 //toggle submenu 183 toggleSubmenu(); 184 185 //toggle menu 186 menuBtn.on('click', function(){ 187 togglePushy(); 188 }); 189 //close menu when clicking site overlay 190 siteOverlay.on('click', function(){ 191 togglePushy(); 192 }); 193 }else{ 194 //add css class to body 195 body.addClass('no-csstransforms3d'); 196 197 //hide menu by default 198 if( pushy.hasClass(pushyLeft) ){ 199 pushy.css({left: "-" + menuWidth}); 200 }else{ 201 pushy.css({right: "-" + menuWidth}); 202 } 203 204 //fixes IE scrollbar issue 205 container.css({"overflow-x": "hidden"}); 206 207 //keep track of menu state (open/close) 208 var opened = false; 209 210 //toggle submenu 211 toggleSubmenu(); 212 213 //toggle menu 214 menuBtn.on('click', function(){ 215 if (opened) { 216 closePushyFallback(); 217 opened = false; 218 } else { 219 openPushyFallback(); 220 opened = true; 221 } 222 }); 223 224 //close menu when clicking site overlay 225 siteOverlay.on('click', function(){ 226 if (opened) { 227 closePushyFallback(); 228 opened = false; 229 } else { 230 openPushyFallback(); 231 opened = true; 232 } 233 }); 234 } 235}(jQuery));

試したこと

bodyタグにoverflow-x: hidden;をあてるという事を
やってみたのですが、問題の解消には至らずです。
(現状もそのままにしてあります。)

(***以下、関係ないかもしれませんが)
pushy内、widthはデフォルトの値から、300pxに広げています。
スマホヘッダーはposition: sticky;で固定

HTML等初心者です。
Windows7環境
当該サイトはYahooショッピング内となります。
未熟者の質問で申し訳ありません。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

makosankibu

2019/12/11 05:22

該当リンクが閲覧できません... また、デベロッパーツールで何の要素がスクロールしているのか調べてみてください 一部のモバイル端末では、body,html要素にはoverflow:hiddenが有効にならないといった現象があるみたいです。 https://qiita.com/shge/items/d2ae44621ce2eec183e6
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問