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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

CSS

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

Q&A

解決済

3回答

1658閲覧

mmenuで横からメニューが出た時にハンバーガーボタンにposition:fixedが効かなくなる

webwebweb

総合スコア8

HTML5

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

CSS

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

0グッド

0クリップ

投稿2018/08/25 10:57

編集2018/09/02 09:58

前提・実現したいこと

mmenuで後述のソースのように構築したのですが、
ハンバーガーボタンを押してスライドメニューが出た状態になると、
開く前にposition:fixedで固定されていたヘッダーが固定されなくなります。

試してみた対処法

対処として、
.mm-opened #wrap {
height: 100vh;
}
をつけましたが、これだと、
スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、
コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、
スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。

#menuの中に閉じるボタンを設置するデザインにしようとして、
↓こちらのページを参考に後述のソースのように組み込んでみましたが、
https://teratail.com/questions/68466

<a href="#my-page">Close the menu</a>の部分をクリックしても閉じず、ボタンが効きませんでした。
ハンバーガーボタンが入っているheaderの固定ができなかったら、
#menu(.mm-menu)の中に閉じるボタンを設置することで対処する方法でも構いません。

何か対処方法をご存知の方がいらっしゃいましたら、
ご助言いただけると大変幸いです。

該当のソースコード

下記ページへ現状を再現したものをUPしてみました。
(解決後削除いたします)
http://saigentest.ojaru.jp/
※前述のhttps://teratail.com/questions/68466 のように#menuの中に閉じるボタンを設置してみたものは
http://saigentest.ojaru.jp/index2.html にアップいたしました。
広告が出ていますが、スライドしてきたメニューの中の<a href="#my-page">Close the menu</a>が該当の箇所です。

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

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

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

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

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

guest

回答3

0

ベストアンサー

今回は、http://saigentest.ojaru.jp/のコードを編集してこの問題を解決していきます。

上記のリンク先のページを見ると、質問者さんがぶつかっている問題は、以下の2つだということになりますね。
0. スライドメニューが出ると、コンテンツの先頭まで移動してしまう。
0. スライドメニューが出ると、position: fixedで固定されていたヘッダーが消える。

  • 1つ目は、質問文にて記述されている.mm-opened #wrapに付与したheightプロパティを削除することで解決すると思います。

  • 2つ目は、fixedElementsというアドオンを使って、スライドメニューが表示された後もヘッダーが表示されるようにすることで解決できます。

この2つを行った結果、最終的なコードは以下のようになります。
もしも、質問者さんが上の手順でコードを修正しても問題が解決しないときは、以下のコードを実行してみてください。

HTML

1<!doctype html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" 6 content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 7 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 8 <link rel="stylesheet" href="http://saigentest.ojaru.jp/common.css"> 9 <link rel="stylesheet" href="http://saigentest.ojaru.jp/slick.css"> 10 <link rel="stylesheet" href="http://saigentest.ojaru.jp/slick-theme.css"> 11 <link rel="stylesheet" 12 href="https://cdnjs.cloudflare.com/ajax/libs/jQuery.mmenu/5.6.1/css/jquery.mmenu.all.min.css"> 13 <title>タイトル</title> 14 <style> 15 .mm-opened #wrap { 16 height: auto; 17 } 18 </style> 19</head> 20<body> 21 22<a id="top"></a> 23<div id="wrap"> 24 <div id="main"> 25 <header class="Fixed"> 26 <div id="h1"> 27 <h1>&nbsp;</h1> 28 </div> 29 <a class="menu-btn" href="#menu"></a> 30 <iframe id="iHeaderSp" src="http://saigentest.ojaru.jp/header.html"></iframe> 31 </header> 32 <main> 33 <ul class="slider wideslider"> 34 <li><a href="#" target="_blank"><img src="http://saigentest.ojaru.jp/img/main1.jpg"></a> 35 <li><a href="#" target="_blank"><img src="http://saigentest.ojaru.jp/img/main2.jpg"></a> 36 </ul> 37 <div class="spaceWrap"> 38 <p style="padding:10px; margin-bottom:10px; background-color:#A0D2D8;"> 39 スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 40 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 41 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 42 <p style="padding:10px; margin-bottom:10px;">スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 43 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 44 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 45 <p style="padding:10px; margin-bottom:10px; background-color:#FFE1E1;"> 46 スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 47 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 48 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 49 <p style="padding:10px; margin-bottom:10px;">スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 50 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 51 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 52 <p style="padding:10px; margin-bottom:10px; background-color:#B5D0AE;"> 53 スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 54 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 55 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 56 <p style="padding:10px; margin-bottom:10px;">スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 57 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 58 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 59 <p style="padding:10px; margin-bottom:10px; background-color:#EAE3AC;"> 60 スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 61 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 62 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 63 <p style="padding:10px; margin-bottom:10px;">スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 64 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 65 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 66 <p style="padding:10px; margin-bottom:10px; background-color:#E2DBEC;"> 67 スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 68 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 69 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 70 <p style="padding:10px; margin-bottom:10px;">スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 71 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 72 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 73 <p style="padding:10px; margin-bottom:10px; background-color:#A8FFE2;"> 74 スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 75 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 76 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 77 <p style="padding:10px; margin-bottom:10px;">スクロールしてコンテンツの途中までいってハンバーガーボタン押してスライドメニューが出てきたとしても、<br> 78 コンテンツ本体部分(.mm-page)の先頭が表示され(先頭に戻るかたち)、<br> 79 スライドメニューを閉じた後、スクロールして行ったところの続きから閲覧することができません。</p> 80 </div> 81 </main> 82 </div> 83 <footer> 84 <div id="goTop"> 85 <a href="#top">▲<br> TOP</a> 86 </div> 87 </footer> 88</div> 89<nav id="menu" class="menuArea"> 90 <iframe id="iSlideMenu" src="http://saigentest.ojaru.jp/leftnavi.html"></iframe> 91</nav> 92 93<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 94<script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery.mmenu/5.6.1/js/jquery.mmenu.all.min.js"></script> 95<script src="http://saigentest.ojaru.jp/slick.min.js"></script> 96<script> 97 $(function () { 98 $("#hdload").load("header.html #header"); 99 100 $('#menu').mmenu({ 101 slidingSubmenus: false 102 }); 103 104 $('a[href^="#"]:not([href*="menu"])').on("click", function () { 105 var speed = 1000; 106 var href = $(this).attr("href"); 107 var target = $(href == "#" || href == "" ? 'html' : href); 108 var position = target.offset().top - 55 + 'px'; 109 $("html, body").animate({ 110 scrollTop: position 111 }, speed, "swing"); 112 return false; 113 }); 114 115 $(window).on('scroll', function () { 116 if ($(this).scrollTop() > 1) { 117 $('body').addClass('fixed'); 118 } else { 119 $('body').removeClass('fixed'); 120 } 121 }); 122 123 $('.wideslider').slick({ 124 dots: true, 125 slidesToShow: 1, 126 autoplay: true, 127 responsive: [{ 128 settings: {} 129 }] 130 }); 131 }); 132</script> 133</body> 134</html>

参考
Tips and tricks - jQuery.mmenu

投稿2018/09/02 17:35

編集2018/09/05 00:50
s8_chu

総合スコア14731

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

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

s8_chu

2018/09/02 17:44

あと、もしよろしければ、使用しているライブラリのバージョンを教えていただけませんか?
webwebweb

2018/09/04 07:43

s8_chu様 知識の深くないものでもわかりやすく解説いただき、誠にありがとうございます。 せっかく詳細に丁寧にご助言いただいたところ、 大変申し訳ございません。 こちらの再現に何か不備があるのだと思うのですが、 再現してみましたが、成功いたしませんでした。 公開していただいたコードをそのままコピーし、 一部だけ変更して実行してみましたが、成功いたしませんでした。 下記に実行したものをアップしてみました。 http://saigentest.ojaru.jp/index3.html ・<link rel="stylesheet" href="jquery.mmenu.all.min.css">を  jquery.mmenu.all.min.cssというものがmmenuで配布されているのを見つけることができなかったため、  <link rel="stylesheet" href="jquery.mmenu.all.css">にこちらで変更しました。 ・<script src="jquery.min.js">を  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">  にこちらで変更しました。 ・<script src="jquery.mmenu.all.min.js">を  jquery.mmenu.all.min.jsというものがmmenuで配布されているのを見つけることができなかったため、  <script src="jquery.mmenu.min.js">にこちらで変更しました。  また、jquery.mmenu.min.jsではなくjquery.mmenu.all.jsで試してみたところ、  mmenu自体がうまく動かなかったため、jquery.mmenu.min.jsにいたしました。 また、 http://saigentest.ojaru.jp/ に <script src="jquery.mmenu.fixedelements.js"></script>と $("#menu").mmenu({ slidingSubmenus: false }, { // configuration classNames: { fixedElements: { fixed: "fix", sticky: "stick" } } }); と <style> .mm-opened #wrap {height: auto;} </style> を追記してみましたが、それでも動きませんでした。 加えて、「ライブラリのバージョン」とは、 「https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js」のことでしょうか。 無知でまことにお手数をおかけいたします。 詳細にご解説いただいたにも関わらず、うまく再現できず申し訳ございません。 度々お手を煩わせて申し訳ございませんが、 ここからどう改善すればもしご助言いただけるなら大変幸いでございます。 今回のご助言に対しましてもご親切ありがとうございました。
s8_chu

2018/09/05 00:50

回答文のコードを修正しました。 コピペすれば動くと思うので、一度確認してみてください。
webwebweb

2018/09/13 13:04

リアクションが遅くなり申し訳ございません。 再現用のサイトでは綺麗に動作しました!ありがとうございます! 実際のサイト(ECサイト)ではモールの自動挿入されてしまうJSが干渉しているのか、 正常に動かないため、あとはいろいろと調節してみます! 今回ご検証とソース考案いただいたことで大きく進歩しました! 感謝申し上げます。ありがとうございました!
guest

0

JSの問題については,s8_chuさんが調べてくれたようなので,私は代替案の方を書きます

とりあえず<iframe>をパーツの分割に使うのはおかしいので,そこは修正してもらい,
JSプラグインを使うと競合とか面倒なのでCSSで実装します

こんな感じです(HTMLができるかぎりセマンティックになるようにしました)
https://thimbleprojects.org/liveasnotes/536993/
イメージ説明
(右上の「リミックス」ボタンからコードの閲覧・編集ができます)

対応内容

  • アコーディオンメニュー
  • メニュー開閉ボタン
  • メニュー枠外クリックでのメニュー終了
  • アコーディオンに使ったラジオボタンの初期化
  • メニュー内容のoverflow: auto;
  • メニュー選択時のアニメーション(矢印)

解説(抜粋)

html

1<!--こういうHTMLに--> 2 3<nav ui> 4 <input type="checkbox" id="menu_btn" dn> 5 <label id="menu_btn_tgl" for="menu_btn"></label> 6 <ul id="menu_w"> 7 <li> 8 <input type="radio" name="menu" id="c_menu_A" dn> 9 <label for="c_menu_A">Section A</label> 10 <ul class="child_menu"> 11 <li><a href="#sA-1">Section A-1</a></li> 12 <li><a href="#sA-2">Section A-2</a></li> 13 <li><a href="#sA-3">Section A-3</a></li> 14 </ul> 15 </li> 16 <li> 17 <input type="radio" name="menu" id="c_menu_B" dn> 18 <label for="c_menu_B">Section B</label> 19 <ul class="child_menu"> 20 <li><a href="#sB-1">Section B-1</a></li> 21 <li><a href="#sB-2">Section B-2</a></li> 22 <li><a href="#sB-3">Section B-3</a></li> 23 </ul> 24 </li> 25 <li> 26 <input type="radio" name="menu" id="c_menu_C" dn> 27 <label for="c_menu_C">Section C</label> 28 <ul class="child_menu"> 29 <li><a href="#sC-1">Section C-1</a></li> 30 <li><a href="#sC-2">Section C-2</a></li> 31 <li><a href="#sC-3">Section C-3</a></li> 32 </ul> 33 </li> 34 </ul> 35

css

1/*アコーディオン*/ 2 3.child_menu >li{ 4 overflow: hidden; 5 height: 0; 6 transition: .5s; 7} 8input[name="menu"]:checked ~.child_menu >li{ 9 height: 3em; 10} 11

css

1/*メニュー開閉ボタン*/ 2 3#menu_btn_tgl{ 4 position: absolute; 5 top: 0; 6 left: 100%; 7 width: 50px; 8 height: 50px; 9 overflow: hidden; 10 color: #fff; 11 font-size: 50px; 12 line-height: 50px; 13 text-align: center; 14 transition: left .5s; 15} 16/*ボタンの表示を書き換える*/ 17#menu_btn:checked +#menu_btn_tgl{ 18 left: 200%; 19 font-size: 0;/*元の文字を見えなくする*/ 20} 21#menu_btn:checked +#menu_btn_tgl::before{ 22 content: "×";/*追加の文字*/ 23 font-size: 50px; 24 line-height: 50px; 25} 26 27#menu_btn:checked ~#menu_w{ 28 transform: translateX(100%);/*自分自身の幅の分だけ,右側へスライド*/ 29 box-shadow: 0 1em #fff, 0 0 10px; 30} 31

css

1/*メニュー枠外クリックでのメニュー終了*/ 2 3/*メニュー枠外いっぱいに広がる半透明の巨大ボタン*/ 4#menu_btn:checked +#menu_btn_tgl::after{ 5 content: ""; 6 position: fixed; 7 top: 0; 8 left: 0; 9 z-index: -1; 10 width: 100vw; 11 height: 100vh; 12 background: rgba(0,0,0,.1) 13} 14

js

1/*アコーディオンに使ったラジオボタンの初期化*/ 2 3/* You need to set these at last of a document. */ 4 5function offRadio() { 6 var radios = document.querySelectorAll('[name="menu"]'); 7 for(i=0; i<radios.length; i++){ 8 radios[i].checked = false; 9 } 10} 11 12document.getElementById('menu_btn_tgl').addEventListener('click', offRadio); 13

css

1/*メニュー内容のoverflow: auto;*/ 2#menu_w{ 3 width: 200px; 4 height: calc(100vh - 1em); 5 overflow-x: hidden;/*y方向のscrollだけ許可*/ 6 background: #fff; 7 padding: 1em; 8 box-shadow: 0 1em #fff; 9 transition: .5s; 10} 11

css

1/*メニュー選択時のアニメーション*/ 2 3label[for^="c_menu"]{ 4 position: relative; 5} 6label[for^="c_menu"]::after{ 7 content: ""; 8 position: absolute; 9 top: .9em; 10 right: 1em; 11 display: block; 12 width: 1em; 13 height: 1em; 14 background-size: 1em 7px, 7px 1em; 15 background-position: -1em calc(1em - 7px), calc(1em - 7px) 1em; 16 background-image: 17 linear-gradient(90deg, #aaa 0%, #aaa 100%), 18 linear-gradient(0deg, #aaa 0%, #aaa 100%); 19 background-repeat: no-repeat; 20 transform: rotateZ(45deg); 21} 22input[name="menu"]:checked +label[for^="c_menu"]::after{ 23 animation: c_menu_after .5s linear forwards; 24} 25@keyframes c_menu_after{ 26 50%{ 27 background-position: 0 calc(1em - 7px), calc(1em - 7px) 1em; 28 } 29 50.1%{ 30 background-position: 0 calc(1em - 7px), calc(1em - 7px) .5em; 31 } 32 100%{ 33 background-position: 0 calc(1em - 7px), calc(1em - 7px) 0; 34 } 35} 36

という感じです


Keywords:

  • 擬似要素(::before,::after
  • 擬似クラス(特に:checked
  • 隣接セレクタ(+
  • 兄弟セレクタ(~
  • 属性セレクタ([]
  • user-selectで文字を選択不可に
  • background系プロパティの複数指定
  • linear-gradient()による背景画像(グラデーション)生成
  • transformプロパティの活用
  • rgba()による色指定
  • @keyframesによるアニメーション
  • element.checkedでのチェック状態の確認・上書き
  • addEventListener()による関数の実行

など

細かい説明はちょっと書ききれないですが,こういうやり方もあるんだということぐらいは知っておいても良いかなと思います
ほぼHTMLとCSSで実装し,唯一書いたJSがこれ↓だけなので,かなりクリーンなソースになったように思います

js

1function offRadio() { 2 var radios = document.querySelectorAll('[name="menu"]'); 3 for(i=0; i<radios.length; i++){ 4 radios[i].checked = false; 5 } 6} 7 8document.getElementById('menu_btn_tgl').addEventListener('click', offRadio);

代わりにCSSが若干長めですが,慣れればこっちのが楽なので,余力があればお試しください
(CSSの力を布教したい)

あ,ちなみにiframeでパーツを分けるデメリットとして,読み込みが少し遅くなる,SEOに弱くなるかも,コードがバラバラになって管理しづらい,iframe内の操作が若干面倒,iframe内のイベントを他の要素に影響させる方法が面倒,などが挙げられます.
いろいろと不自由になりがちなので,ふつうに直接HTMLを記述する方が良いかなと思います

投稿2018/09/03 03:58

編集2018/09/03 15:20
liveasnotes

総合スコア1284

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

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

webwebweb

2018/09/04 07:42

liveAsNotes様 極力よりよい方法での構築アドバイスありがとうございます! 私もできればJSを使わず(私の場合はJSの知識が浅いため競合した時に対応力が低いからというものがありますが)、 CSSのみで構築できたらしたいのですが、どうしてもありもの使ってしまっています^^; すごく使いやすそうでカッコいいスタイルのソースの公開をありがとうございます。 私もiframeは反映されるまでブランクが発生する場合や、SEOの面などからできれば使いたくないのですが、 運営しているサイトを管理する人が私よりもさらにマークアップの知識がなく、 いまだになんでもtableで構築しようとしたりfontタグやcenterタグを使ったり、 Dreamweaverを使っているのになぜかわざわざFFFTPでUPすることを選ぶくらいのスキルの方ばかりの 部署が運用更新するため、また、サイト運用以外の業務が主なため、 更新工数は最低限に収めることと、極力難易度低めで更新できるようにするため、iframeにしてみています。 一部jQueryのloadを使っているところがありますが、 空divに読み込んだソースが反映されるということもいまいち理解してもらえないので、 なるべく昔からあるiframeを使用することで更新する人に合わせています。 こちらのCSSでの手法は、 次に新規サイトを構築する際にぜひ参考にさせていただきたいと思います。 こちらのCSSでの構築はスライドしてくるメニュー部分は、iframeやjQueryのloadで運用は可能でしょうか。 iframeは恐らく不可なのかなとは思いましたが、jQueryのloadでもできれば今後この方法でも構築可能ですので、 ぜひ参考にさせていただきたいと思います。 ご親切に丁寧にコードと解説を書いていただき、誠にありがとうございました。 ご親切心に感謝申し上げます。
liveasnotes

2018/09/04 08:28

>iframeやjQueryのloadで運用は可能でしょうか。 iframeでも枠からはみ出そうとしたりしない限り大丈夫かなと思います 基本的にメニュー部分に関していえば,ul要素の兄にlabelとinputがあるだけの構造なので,loadでもなんでも来いです (若干工夫は必要かもしれませんが笑) それにしても,人間向けのレガシー対応があるとは思ってもいませんでした 世界は広い...
liveasnotes

2018/09/04 08:40

>iframeでも枠からはみ出そうとしたりしない限り大丈夫かなと思います そういえば,iframe内からのリンクって親に効かないんだっけ...前言撤回します(><) (直接DOMに追記するなら大丈夫なはず)
webwebweb

2018/09/13 13:01

リアクションが遅くなり申し訳ございません。 いろいろとありがとうございました。 ご解説いただいたことは今後の参考にさせていただきます。 ご助言いただきましたことを感謝申し上げます。
guest

0

まさかとは思いますが,添付のコードをそのまま,HTMLとして保存してはいませんよね?
そうであるならコードを修正し,そうでないなら以下のように質問文を修正してください
イメージ説明

また,下記ページを参照してください
https://teratail.com/help/question-tips#questionTips3-7



それから,現時点で示されたコードで確認できるのは以下の通りです
(htmlはいくらか追記しています)
(ボタンを押しても反応しません)
イメージ説明

既にサーバーを借りているなら,そのサーバー上にデモページを設置するか,各種オンラインエディタから公開URLを引っ張ってくるかして,即座にデバッグ作業が行える状態にしてください

投稿2018/08/25 15:44

編集2018/08/25 16:35
liveasnotes

総合スコア1284

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

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

webwebweb

2018/09/02 09:58

liveAsNotes様 コメントくださり大変ありがとうございます。 大変失礼いたしました。 不慣れでお手数をおかけいたしました。 teratailでの記述方法をご丁寧にお教えいただいきありがとうございます。 また、返信が遅くなり申し訳ありません。 再現できるように、ファイルを公開用に編集し、公開用サーバーを作りそこにアップしてみました。 こちらに現状と同等のものを再現いたしました。 http://saigentest.ojaru.jp/ また、前述のhttps://teratail.com/questions/68466 のように#menuの中に閉じるボタンを設置してみたものは http://saigentest.ojaru.jp/index2.html にアップいたしました。 広告が出ていますが、スライドしてきたメニューの中の<a href="#my-page">Close the menu</a>が該当の箇所です。 もし、なにかご存知でしたら、ご助言いただけると大変幸いでございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問