1. ホーム
  2. javascript

[解決済み] ドロップダウンメニューをスクロール可能にする

2022-02-17 20:29:33

質問

CSSとjqueryを使って、HTMLページにドロップダウンメニューを実装しようとしています。以下は、HTMLとjavascriptのコードのサンプルです。

<nav id="topNav">
  <ul>
    <li><a href="#" title="Nav Link 1">Menu 1</a></li>
    <li>
      <a href="#" title="Nav Link 2">Menu 2</a>
      <ul>
        <li><a href="#" title="Sub Nav Link 1">Sub Nav Link 1</a></li>
        <li><a href="#" title="Sub Nav Link 2">Sub Nav Link 2</a></li>
        <li><a href="#" title="Sub Nav Link 3">Sub Nav Link 3</a></li>
        <li><a href="#" title="Sub Nav Link 4">Sub Nav Link 4</a></li>
        <li class="last"><a href="#" title="Sub Nav Link 5">Sub Nav Link 5</a></li>
      </ul>
    </li>
    <li>
        <a href="#" title="Nav Link 3">Menu 3</a>
    </li>
  </ul>
</nav>

以下は、Javascriptのコードです。

var nav = $("#topNav");

//add indicators and hovers to submenu parents
nav.find("li").each(function() {
    if ($(this).find("ul").length > 0) {

        $("<span>").text("^").appendTo($(this).children(":first"));

        //show subnav on hover
        $(this).click(function() {
            $(this).find("ul").stop(true, true).slideToggle();
        });
    }
});

プログラムでメニューにコンテンツを追加する予定ですが、ドロップダウンメニューのコンテンツが大きくなりすぎたときに、スクロールできるようにしたいのです。

どうすればよいのでしょうか?

どのように解決するのですか?

を使ってみてください。 css のようなものです。

#topNav ul li ul{
   max-height:250px;/* you can change as you need it */
   overflow:auto;/* to get scroll */
}

デモ