ヘッダーのサブメニュー

:discourse2: 概要 ヘッダーサブメニューを使えば、プレーンテキストだけでサブメニュー付きのヘッダーメニューを作成できます!
:eyeglasses: プレビュー Discourse Theme Creator でプレビュー
:hammer_and_wrench: リポジトリリンク https://github.com/discourse/discourse-header-submenus
:open_book: Discourse テーマは初めてですか? Discourse テーマの使い方入門ガイド

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

機能

デスクトップ

モバイル

設定

名前 説明
メニュー項目 メニュー項目を追加します。1 行に 1 つの項目を、以下の順序で入力します:テキスト、アイコン、タイトル、表示デバイス。
サブメニュー項目 サブメニュー項目を追加します。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. メニュー項目

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

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

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

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

    スペースの制限により、モバイルでは 3〜4 つ以上の項目を追加しないことをお勧めします。

  2. サブメニュー項目

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

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

    親:このサブメニュー項目を表示する親メニュー項目の名前。上記のリストから テキスト の値を使用します。
    テキスト:このサブメニュー項目に表示されるテキスト。
    アイコン:このサブメニュー項目のアイコン。アイコンが不要な場合は 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. 色オプション

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


: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