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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

0回答

711閲覧

hiraku.jsのドロワーメニューが、ページ変遷後にも閉じないです。

km9981

総合スコア5

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

2クリップ

投稿2019/11/04 07:16

編集2019/11/05 09:00

前提・実現したいこと

LPを作成しています。スマホサイズでhiraku.jsのドロワーメニューが出ます。
が、ドロワーメニュー内のページ外リンクを踏んで作成中のページに戻ると、ドロワーが表示されたままになります。これを解消したいのです。
該当ページ
文字数制限でHTML・CSSが貼れず、申し訳ありません。
ディベロッパーツール上では現象が再現されずスマートフォン実機で見ると、上記現象が起きます。

該当のソースコード

ドロワーメニュー部分のHTML

html

1<div class="offcanvas-left"> 2 <div class="offcanvas-header"> 3 <a href="https://store.shopping.yahoo.co.jp/exmail/"><img src="../img/logo_sp.png" class="offcanvas-logo" alt="ロゴ"></a> 4 </div> 5 <div class="offcanvas-main"> 6 <nav class="offcanvas-main-btn"> 7 <ul> 8 <li><a href="https://store.shopping.yahoo.co.jp/exmail/guide.html">お支払い方法/配送/返品</a></li> 9 <li><a href="https://store.shopping.yahoo.co.jp/exmail/info.html" ><i class="fas fa-building fa-fw "></i>会社概要</a></li> 10 <li><a href="https://talk.shopping.yahoo.co.jp/contact/exmail#" ><i class="fas fa-envelope fa-fw"></i>お問い合わせ</a></li> 11 <li><a href="https://order.shopping.yahoo.co.jp/cgi-bin/cart-form?sc_i=shp_pc_store_MHD_cart" ><i class="fas fa-shopping-cart fa-fw"></i>カート</a></li> 12 </ul> 13 </nav> 14 <hr> 15 <nav class="offcanvas-main-txt"> 16 <ul> 17 <li><a href="https://store.shopping.yahoo.co.jp/exmail/a4b4cdf8cd.html"><i class="fas fa-pencil-alt fa-fw"></i>電報の入力方法</a></li> 18 <li><a href="https://store.shopping.yahoo.co.jp/exmail/cab8cee3bd.html" ><i class="fas fa-book fa-fw"></i>文例集</a></li> 19 <li><a href="https://shopping.geocities.jp/exmail/guide/jp_area.html" ><i class="fas fa-truck fa-fw"></i>お届け日時の確認</a></li> 20 <li><a href="https://shopping.yahoo.co.jp/store_rating/exmail/store/review/" ><i class="fas fa-comments fa-fw"></i>お客様の声</a></li> 21 <li><a href="https://store.shopping.yahoo.co.jp/exmail/a4e8a4afa4.html" ><i class="fas fa-question-circle fa-fw"></i>よくある質問</a></li> 22 </ul> 23 </nav> 24 <hr> 25 <div class="offcanvas-footer"> 26 <div class="offcanvas-footer-section"> 27 <p class="offcanvas-footer-title">領収書について</p> 28 <p class="offcanvas-footer-txt">当店では、ご希望のお客様にPDF形式の領収書を発行しております。ご注文時、備考欄の「ご要望」に領収書希望の旨と、宛名・但し書・送信先のメールアドレスをご記入ください。商品発送後、PDF形式の領収書を添付したメールを送信いたします。</p> 29 </div> 30 <div class="offcanvas-footer-section"> 31 <p class="offcanvas-footer-title">プライバシーについて</p> 32 <p class="offcanvas-footer-txt">電報屋のエクスメールでは、プライバシーを尊重し、個人情報を保護するために細心の注意を払っています。お客様からいただいた個人情報は商品の発送とご連絡以外には一切使用致しません。当社が責任をもって安全に蓄積・保管し、第三者に譲渡・提供することはございません。</p> 33 </div> 34 <div class="offcanvas-footer-section"> 35 <p class="offcanvas-footer-title">営業時間について</p> 36 <p class="offcanvas-footer-txt">ご注文は24時間受け付けております。日曜日・祝日も電報の受付・発送業務を行います。お電話でのお問合せにつきましては、下記の時間帯にお願いします。<br>【平日・土曜 10:00~18:30】<br>日曜・祝日は、メールにてお問い合わせください。</p> 37 </div> 38 </div> 39 </div> 40 </div>

JavaScript

1/*! 2 * Hiraku Ver.1.0.8 (https://www.appleple.com) 3 * Copyright appleple | MIT License 4 * 5 */ 6;(function umd(factory) { 7 'use strict'; 8 if (typeof define === 'function' && define.amd) { 9 define(['jquery'], factory); 10 } else if (typeof exports === 'object') { 11 module.exports = factory(require('jquery')); 12 } else { 13 factory(jQuery); 14 } 15}(function Hiraku($) { 16 var defaults = { 17 direction: 'right', 18 breakpoint: -1 19 } 20 var num = 0; 21 var winPos = { x: window.scrollX, y: window.scrollY }; 22 var focusableElements = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]'; 23 var animationFrameId; 24 var windowWidth = 0; 25 var resizeHandler = function() { 26 // Check window width has actually changed and it's not just iOS triggering a resize event on scroll 27 if ($(window).width() === windowWidth) { 28 return; 29 } 30 windowWidth = $(window).width(); 31 $('.js-hiraku-offcanvas').each(function() { 32 var $this = $(this); 33 var breakpoint = $(this).data('breakpoint'); 34 if ($this.hasClass('js-hiraku-offcanvas-open') && (breakpoint === -1 || breakpoint >= window.innerWidth)) { 35 return; 36 } 37 if (breakpoint === -1 || breakpoint >= window.innerWidth) { 38 $this 39 .addClass('js-hiraku-offcanvas-active') 40 .attr('aria-hidden', true); 41 } else { 42 $this 43 .removeClass('js-hiraku-offcanvas-active') 44 .attr('aria-hidden', false) 45 .trigger('click'); 46 } 47 }); 48 }; 49 $.fn.extend({ 50 hiraku: function(opt) { 51 var opt = $.extend({}, defaults, opt); 52 var id = 'js-hiraku-offcanvas-' + num; 53 var $this = $(this); 54 var $btn = $(opt.btn); 55 var $fixed = $(opt.fixedHeader); 56 $this 57 .addClass('js-hiraku-offcanvas-sidebar') 58 .data('scroll', scroll); 59 if ($this.parent('.js-hiraku-offcanvas').length === 0) { 60 $this.wrap('<div class="js-hiraku-offcanvas"/>'); 61 } 62 $this.attr('role', 'navigation'); 63 var $parent = $this.parent('.js-hiraku-offcanvas'); 64 $parent.data('opt', opt); 65 $parent 66 .attr('aria-hidden', 'true') 67 .attr('aria-labelledby', 'hiraku-offcanvas-btn-' + num) 68 .attr('id', id) 69 .data('breakpoint', opt.breakpoint) 70 .attr('aria-label', 'close'); 71 $('body').addClass('js-hiraku-offcanvas-body'); 72 if (opt.direction == 'right') { 73 $this.addClass('js-hiraku-offcanvas-sidebar-right'); 74 } else { 75 $this.addClass('js-hiraku-offcanvas-sidebar-left'); 76 } 77 if (opt.btn) { 78 $btn 79 .addClass('js-hiraku-offcanvas-btn') 80 .attr('data-toggle-offcanvas', '#' + id) 81 .attr('aria-expanded', false) 82 .attr('aria-label', 'Menu') 83 .attr('aria-controls', id) 84 .attr('id', 'hiraku-offcanvas-btn-' + num); 85 } 86 if (opt.fixedHeader) { 87 $fixed.addClass('js-hiraku-header-fixed'); 88 } 89 num++; 90 resizeHandler(); 91 } 92 }); 93 $(document).on('click', '.js-hiraku-offcanvas-btn', function(e) { 94 var $target = $($(this).data('toggle-offcanvas')); 95 $('<button type="button">Close Offcanvas-Menu Button</button>') 96 .attr('aria-label', 'Close') 97 .addClass('js-hiraku-offcanvas-close-btn') 98 .appendTo($target); 99 var $this = $(this); 100 var $body = $('body').css({ 'width': $(window).width(), 'height': $(window).height() }); 101 var $sidebar = $target.find('.js-hiraku-offcanvas-sidebar'); 102 var $first = $target.find(focusableElements).first(); 103 var $last = $target.find(focusableElements).last(); 104 $first.off('keydown.hiraku-offcanvas').on('keydown.hiraku-offcanvas', function(e) { 105 if ((e.which === 9 && e.shiftKey)) { 106 e.preventDefault(); 107 $last.focus(); 108 } 109 }); 110 $last.off('keydown.hiraku-offcanvas').on('keydown.hiraku-offcanvas', function(e) { 111 if ((e.which === 9 && !e.shiftKey)) { 112 e.preventDefault(); 113 $first.focus(); 114 } 115 }); 116 $last.off('click.hiraku-offcanvas').on('click.hiraku-offcanvas', function() { 117 $target.click(); 118 }); 119 $this 120 .addClass('js-hiraku-offcanvas-btn-active') 121 .attr('aria-expanded', true); 122 winPos.x = window.scrollX; 123 winPos.y = window.scrollY; 124 $target 125 .attr('aria-hidden', false) 126 .addClass('js-hiraku-offcanvas-open'); 127 setTimeout(function() { 128 $('html').css('marginTop', -1 * window.scrollY); 129 if ($sidebar.hasClass('js-hiraku-offcanvas-sidebar-right')) { 130 $body.addClass('js-hiraku-offcanvas-body-right'); 131 } else { 132 $body.addClass('js-hiraku-offcanvas-body-left'); 133 } 134 $sidebar.addClass('active'); 135 $first.focus(); 136 }, 1); 137 e.preventDefault(); 138 }); 139 $(document).on('click touchstart keyup', '.js-hiraku-offcanvas', function(e) { 140 // add the ability to close the off-canvas if the escape key is pressed 141 if (e.type === 'keyup' && e.keyCode !== 27) { 142 return; 143 } 144 145 if (e.type === 'keyup') { 146 // simulate the right element instead of passing the active element in DOM (such as triggers) 147 e.target = document.querySelector('.js-hiraku-offcanvas'); 148 } 149 150 if ($(e.target).hasClass('js-hiraku-offcanvas')) { 151 var opt = $(this).data('opt'); 152 153 $('.js-hiraku-offcanvas-body') 154 .addClass('js-hiraku-offcanvas-body-moving') 155 .removeClass('js-hiraku-offcanvas-body-right') 156 .removeClass('js-hiraku-offcanvas-body-left'); 157 $('.js-hiraku-offcanvas-sidebar').removeClass('active'); 158 $('body').css({ width: '', height: '' }); 159 setTimeout(function() { 160 $(e.target) 161 .removeClass('js-hiraku-offcanvas-open') 162 .attr('aria-hidden', true); 163 $('.js-hiraku-offcanvas-body').removeClass('js-hiraku-offcanvas-body-moving'); 164 $('html').css('marginTop', ''); 165 window.scrollTo(winPos.x, winPos.y); 166 var $btn = $('.js-hiraku-offcanvas-btn-active'); 167 $btn 168 .removeClass('js-hiraku-offcanvas-btn-active') 169 .attr('aria-expanded', false) 170 .focus(); 171 $(e.target).find('.js-hiraku-offcanvas-close-btn').remove(); 172 if (opt && opt.onClose) { 173 opt.onClose(); 174 } 175 }, 300); 176 } 177 }); 178 $(window).on('resize', function() { 179 if ('requestAnimationFrame' in window) { 180 cancelAnimationFrame(animationFrameId); 181 animationFrameId = requestAnimationFrame(resizeHandler); 182 } else { 183 resizeHandler(); 184 } 185 }); 186})); 187

試したこと

ドロワー内の一番上のロゴのリンク先(弊サイトトップページ)からもどった場合はこの現象は起きないようです。

また、同じリンクを踏んでも
現象が起きる時と起きない時があるようです。

補足情報(FW/ツールのバージョンなど)

現象はAndroid実機で確認しております。
HTML初心者です。どうぞよろしくお願いいたします。

2019年11月5日 追記)
※最初に質問をアップした際、
上手く保存できていませんでした。
大変申し訳ございません。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問