解決済み
Question

ページ内リンク遷移時にハンバーガーメニューを閉じたい

  • 村田裕誠
  • お世話になります。

    スマホのハンバーガーメニューの中に「ページ内リンク(#から始まるアンカーリンク)」を設置しています。 リンクをタップすると該当箇所へ遷移はするのですが、メニューが開いたまま画面に残ってしまいます。

    ハンバーガーメニューの中に「料金表」のみ、ページ内リンクで設定してます。

    遷移と同時にメニューを閉じる(トグルをオフにする)方法はありますでしょうか? 追加CSSやJSが必要な場合、JIN:R推奨の記述があれば教えていただきたいです。

    よろしくお願いいたします。

    • JIN:R 1.4.0
    • Conoha Wing
    • GoogleChrome
    • macOS 15 Sequoia
    2025/12/22 05:50
  • tsu_

    画像とURLのご共有ありがとうございます。

    大変恐れ入りますが、個別環境に合わせたJSの調整などはサポート対象外となっております。ご了承いただけますと幸いです。
    なお、本件は改善のご要望として開発チームに共有いたします。

    代替案のご案内になってしまいますが、ハンバーガーメニュー内の他のメニューと同様に、「料金表」を固定ページとして作成し、そちらへ遷移する形で運用いただく方法も一案かと思います。

    ご希望に沿えず恐縮ではございますが、ご確認のほどよろしくお願いいたします。

    2025/12/23 23:47
  • 村田裕誠

    ご返信ありがとうございます。 個別のカスタマイズ(JS調整)についてはサポート対象外である旨、承知いたしました。

    また、代替案として固定ページへの遷移のご提案もいただきありがとうございます。 現状の構成と照らし合わせて検討させていただきます。

    トップページをLP(ランディングページ)風に構成し、メニューからページ内遷移させたいというニーズは今後も少なくないかと思いますので、開発チーム様にて機能改善としてご検討いただけますと幸いです。

    お忙しい中、ご確認いただきありがとうございました。 今後ともよろしくお願いいたします。

    2025/12/24 03:34
  • 村田裕誠

    その後、自力で検証を行い、JavaScriptを用いることで「ページ内リンク遷移時にハンバーガーメニューを閉じる」挙動を実装できましたので、共有させていただきます。

    【実装方法】 ダッシュボードの「JIN:R設定」>「計測タグ設定」>「bodyタグ終了直前に記載するタグ」に、以下のスクリプトを追加しました。



    document.addEventListener('DOMContentLoaded', function() {
    // ハンバーガーボタンを取得
    const hamburger = document.querySelector('.js--hamburger-trigger');

    // ページ内の「#」を含むリンクをすべて監視
    const links = document.querySelectorAll('a[href*="#"]');

    if (hamburger) {
    links.forEach(function(link) {
    link.addEventListener('click', function() {
    // メニューが開いている状態(js--hamburger-activeが付与されている)なら
    // 0.2秒後にボタンをクリックして閉じる
    if (hamburger.classList.contains('js--hamburger-active')) {
    setTimeout(function(){
    hamburger.click();
    }, 200);
    }
    });
    });
    }
    });

    2025/12/24 04:18
  • tsu_

    お世話になっております。
    ご丁寧なご返信と、検証結果の共有までいただきありがとうございます。

    開発チームにも共有済みですので、今後の検討材料とさせていただければと思います。
    引き続き、よろしくお願い申し上げます。

    2025/12/24 08:19
CLOSE