ヘッダーのサブメニュー

:discourse2: 概要 Header Submenus を使用すると、プレーンテキストでサブメニュー付きのヘッダーメニューを作成できます!
:eyeglasses: プレビュー Discourse Theme Creator でのプレビュー
:hammer_and_wrench: リポジトリリンク https://github.com/discourse/discourse-header-submenus
:open_book: Discourse Themes 初心者の方へ Discourse Themes の使用に関する初心者ガイド

このテーマコンポーネントをインストール

機能

デスクトップ

モバイル

設定

名前 説明
メニュー項目 メニュー項目を追加します。各行に 1 つの項目を以下の順序で入力します:テキスト、アイコン、タイトル、表示デバイス。
サブメニュー項目 サブメニュー項目を追加します。各行に 1 つの項目を以下の順序で入力します:親、テキスト、アイコン、URL、ターゲット、タイトル。
SVG アイコン 上記のリストで使用される各アイコンの FontAwesome アイコンクラスを含めます。
固定モード スクロール位置に関係なく、メニューを画面の上部に表示させます - デスクトップのみ
キャレットを表示 メニュー項目の隣にキャレットアイコンを表示します
位置を反転 メニュー項目を画面の反対側に表示します
メニューの背景 メニューの背景色。 (16 進数、rgb、rgba、または CSS の色名)
メニュー項目の色 メニュー項目の色。 (16 進数、rgb、rgba、または CSS の色名)
メニュー項目(アクティブ)の背景 アクティブなメニュー項目の背景色。 (16 進数、rgb、rgba、または CSS の色名)
メニュー項目(アクティブ)の色 アクティブなメニュー項目の色。 (16 進数、rgb、rgba、または CSS の色名)
サブメニューの背景 サブメニューの背景色。 (16 進数、rgb、rgba、または CSS の色名)
サブメニュー項目の色 サブメニュー項目の色。 (16 進数、rgb、rgba、または CSS の色名)
サブメニュー項目(ホバー時)の背景 サブメニュー項目をマウスオーバーしたときの背景色。 (16 進数、rgb、rgba、または CSS の色名)
サブメニュー項目(ホバー時)の色 サブメニュー項目をマウスオーバーしたときの文字色。 (16 進数、rgb、rgba、または CSS の色名)
区切りの色 サブメニュー内の区切り線の色。 (16 進数、rgb、rgba、または CSS の色名)

設定は 4 つのグループに分かれています

  1. メニュー項目

    メニューに表示したい項目を入力します。各行にカンマ区切りの項目を以下の順序で入力します

    テキスト, アイコン, タイトル, 表示デバイス

    テキスト: メニューに表示されるテキスト。
    アイコン: 項目の隣に表示されるアイコン。アイコンを使用したくない場合は none を使用します。
    タイトル: 項目にマウスを合わせたときに表示されるテキスト。
    表示デバイス: 項目を表示するデバイスを選択します。

    ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ vdm はデスクトップとモバイルの両方に表示されます
    ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ vdo はデスクトップのみに表示されます
    ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ ‏‏‎ vmo はモバイルのみに表示されます

    スペースの制約があるため、モバイルに 3〜4 個以上の項目を追加することは推奨されません。

  2. サブメニュー項目

    メニューに追加したいサブメニュー項目のリストを入力します。各行にカンマ区切りの項目を以下の順序で入力します

    親, テキスト, アイコン, URL, ターゲット, タイトル

    親: このサブメニュー項目を表示する親メニュー項目の名前。上記のリストから text の値を使用します。
    テキスト: このサブメニュー項目に表示されるテキスト。
    アイコン: このサブメニュー項目のアイコン。アイコンが必要ない場合は none を使用します。
    URL: このメニュー項目がリンクするパス。相対パスも使用できます。
    ターゲット: この項目が新しいタブで開くか、同じタブで開くかを選択します。新しいタブでリンクを開くには blank を、同じタブで開くには self を使用します。
    タイトル: 項目にマウスを合わせたときに表示されるテキスト。
    区切り: サブメニュー項目の間に区切り線を追加することもできます。区切り線を追加するには 親, divider を使用します。

上記の 1 と 2 をカバーする簡単な例を以下に示します:

Design というメニュー項目を追加し、そのサブメニューにいくつかの項目を追加したいとします

まず、これを menu_item として入力します

Design, magic, Get inspired!, vdm

次に、これらを sub_menu 項目として入力します

Design, Galleries, th, #, blank, Cool galleries for you to look at.
Design, Design process, lightbulb-o, #, blank, Learn the basics.
Design, Blog design, columns, #, blank, What makes for a great blog?
Design, divider
Design, Freebies, gift, #, blank, Everyone likes freebies!
Design, Photoshop tutorials, book, #, blank, Photoshop for beginners.
Design, Design trends, bar-chart, #, blank, Stay on top of the current trends!

これで完了です!

テーマにはデフォルトでプレースホルダーメニューが付属しているため、それを参照し、質問があればお知らせください。

  1. レイアウトオプション

    これらは非常に自己説明的です

  2. カラーオプション

    これらはデフォルトで空ですが、ここに色を追加すると、現在のカラースキームに基づいたコンポーネントのデフォルト値が上書きされます。


:discourse2: ホスティングサービスをご利用ですか? テーマコンポーネントは、Standard、Business、Enterprise プランでご利用いただけます。

「いいね!」 90

このコンポーネントに更新をプッシュしました。

外観に変更はありません。テーマにカスタム CSS を追加していた場合も、コンポーネントのクラス名が変更されていないため、引き続き正常に動作します。

以前このコンポーネントで使用していた外部ライブラリ、およびそれに伴う jQuery を削除しました。ここで報告された問題を確認し、再現可能なものを修正した後、整理のために返信を削除しました。更新後も問題が解決しない場合は、お気軽に投稿してください。

その他、今回の更新では新しい機能が 1 つ追加されました。デスクトップ環境では、サブメニューがクリックではなくホバーで表示されるようになりました。

「いいね!」 14

素晴らしいアップデートですね、Joe。モバイルで2つの問題に遭遇しました。

  1. メニュー項目が多い場合、左右にスクロールできなくなりました。
  2. ドロップダウンの項目をタップすると、ドロップダウンが開いたままになります。
「いいね!」 2

これは本来動作するはずですが、モバイル表示でのみ発生します。つまり、ユーザーエージェントを変更せずにブラウザの偽装モバイルビューでテストするだけでは、動作しません。実際のスマートフォンでテストしていることを確認していただけますか?もしそうであれば、使用しているデバイスとブラウザを教えていただけますか?

私も同様の現象を確認しています。その理由は、ドロップダウンの開閉動作がすべてJavaScriptではなくCSSで処理されるようになったためです。クリック後に自動的にドロップダウンを閉じる処理をCSSだけで行う方法はないと考えています。そのため、この特定の課題についてはJavaScriptへのフォールバックが必要となります。モバイルでのスクロール問題が確認でき次第、対応いたします。

「いいね!」 2

これは iPhone 8 の Discourse アプリで、Safari でも同様です。ジョー、ありがとう!

「いいね!」 2

Joe、この件について何か進展はありますか?ありがとうございます!

Sponge コミュニティサイトでは、メインヘッダーにこれをきれいに統合しており、トップに余計なレイヤーを追加していません:

これをどのように実現できますか?当サイトでも実現したいです。

「いいね!」 4

ヘッダーリンクにサブメニューを追加することは可能ですか?このテーマコンポーネントはヘッダーの上に新しいメニューを追加しますが、新しいナビゲーションメニューを必要としないユーザーもいます。彼らが求めているのは、現在のヘッダーリンクにマウスをホバーしたときにサブメニューが表示される機能だけです。

「いいね!」 5

それは素敵ですね。彼らがどのようにやったのか気になります。

「いいね!」 1

この問題に直面している方はいますか?SNSのアイコンが表示されません(以前は表示されていました)。別のフォントを使用しても表示されません。

「いいね!」 1

「fab」プレフィックスを試しましたか?これらはブランド名なので、このプレフィックスが必要です。

「いいね!」 1

@davidkingham 返信ありがとうございます。プレフィックスに「fab」を追加しましたが、ロゴが表示されません。

「いいね!」 1

リンクリストのアイコンも編集するのを忘れないでください。これらには「fab-」プレフィックスを含める必要があります。

「いいね!」 4

ビンゴ!それでした :slight_smile: ありがとうございます!

「いいね!」 2

こんにちは。なぜか「Menu-item-active-background」の設定が正しく機能していないようです。ホバーしたときにメニューの背景色が変わるだけのはずですが、選択された色が完全にテキストを覆ってしまっています。こちらをご覧ください…

また、その下にある「Menu-item-active-color」の設定も何も効果がないようです。異なる色コードを試してみましたが、テスト時に何も変化しません。

何かご存知ですか?

「いいね!」 2

サブメニューをサイトヘッダーの下ではなく、上部に配置したいのですが、その方法をご教示いただけますか?コードスニペットがあると助かります :pray:

「いいね!」 1

@Johani @davidkingham「ドロップダウン内の項目をタップすると、ドロップダウンが開いたままになる」という問題の解決策は見つかりましたか?

ありがとうございます

「いいね!」 1

いいえ、まだ同じように動作しています。モバイルではテキストを表示せずアイコンのみ表示するというのが一つの解決策かもしれません。どう思いますか?

「いいね!」 1

モバイルでアイコンのみを表示することで、どのように問題が解決するのでしょうか?「ドロップダウン内の項目をタップすると、ドロップダウンが開いたままになる」

「いいね!」 1

@ElForoViajero サブメニューはデスクトップとモバイルの両方で正常に動作しているようです。メニュー項目をクリックするとすぐに画面が更新され、メニューが自動的に閉じます。何か特別な設定が必要でしたか?

「いいね!」 1