ページのスクロール可能なドロップダウンメニューを作成する

sven tan

自分のサイトにスクロール可能なドロップダウンメニューを作成したかったのです。スクロール可能なドロップダウンメニューについて話している多くのページを読みましたが、それらのコードは機能しません。ただし、ドロップダウンメニューにスクロール可能なドロップダウンメニューを表示できません。

HTML

<li>
            <a href="#">Team Profile</a>

            <ul>
              <li><a href="#">Chelsea</a></li>
        <li><a href="#">Man City</a></li>
        <li><a href="#">Southampton</a></li> 
        <li><a href="#">Man Utd</a></li>
        <li><a href="#">Arsenal</a></li>
        <li><a href="#">Liverpool</a></li>
        <li><a href="#">West Ham</a></li>
        <li><a href="#">Newcastle</a></li>
        <li><a href="#">Leichester</a></li>
        <li><a href="#">QPR</a></li>
        <li><a href="#">Burnley</a></li>
        <li><a href="#">Aston Villa</a></li>
        <li><a href="#">Stoke City</a></li>
        <li><a href="#">Crystal Palace</a></li>
        <li><a href="#">Hull City</a></li>
        <li><a href="#">Sunderland</a></li>
        <li><a href="#">Tottenham Hotspur</a></li>
        <li><a href="#">Everton</a></li>
        <li><a href="#">Swansea</a></li>
        <li><a href="#">West Brom</a></li>
            </ul>

        </li>

CSS

.myDropDown
{
   height: 50px;
   overflow: auto;
}
.nav ul {
    *zoom:1;
    list-style:none;
    margin:0;
    padding:0;
    background:#333;
}
.nav ul:before,.nav ul:after {
    content:"";
    display:table;
}
.nav ul:after {
    clear:both;
}
.nav ul > li {
    float:left;
    position:relative;
}
.nav a {
    display:block;
    padding:10px 20px;
    line-height:1.2em;
    color:#fff;
    border-left:1px solid #595959;
}
.nav a:hover {
    text-decoration:none;
    background:#595959;
}
.nav li ul {
    background:#273754;
}
.nav li ul li {
    width:200px;
}
.nav li ul a {
    border:none;
}
.nav li ul a:hover {
    background:rgba(0,0,0,0.2);
}
.nav li ul {
    position:absolute;
    left:0;
    top:36px;
    z-index:1;
    max-height:0;
    overflow:hidden;
    -webkit-transform:perspective(400) rotate3d(1,0,0,-90deg);
    -webkit-transform-origin:50% 0;
    -webkit-transition:350ms;
    -moz-transition:350ms;
    -o-transition:350ms;
    transition:350ms;
}
.nav ul > li:hover ul {
    max-height:1000px;
    -webkit-transform:perspective(400) rotate3d(0,0,0,0);
}
*                                   { margin: 0; padding: 0; }
body                                { font: 15px Helvetica, Sans-Serif; } 
html                                { overflow-y: scroll; }
#page-wrap                          { width: 720px; margin: 25px auto; } 
p                                   { margin: 0 0 8px 0; }
a                                   { text-decoration: none; }
img                                 { vertical-align: middle; }
a img                               { border: 0; 180}
ul                                  { list-style: none; }
h1                                  { margin: 0 0 10px 0; }

/* 
    LEVEL ONE
*/
ul.dropdown                         { position: relative; width: 100%; }
ul.dropdown li                      { font-weight: bold; float: left; width: 180px; background: #ccc; position: relative; }
ul.dropdown a:hover                 { color: #000; }
ul.dropdown li a                    { display: block; padding: 20px 8px; color: #222; position: relative; z-index: 2000; }
ul.dropdown li a:hover,
ul.dropdown li a.hover              { background: #F3D673; position: relative; }


/* 
    LEVEL TWO
*/
ul.dropdown ul                      { display: none; position: absolute; top: 0; left: 0; width: 180px; z-index: 1000; }
ul.dropdown ul li                   { font-weight: normal; background: #f6f6f6; color: #000; border-bottom: 1px solid #ccc; }
ul.dropdown ul li a                 { display: block; background: #eee !important; } 
ul.dropdown ul li a:hover           { display: block; background: #F3D673 !important; } 
.FixedHeightContainer
{
  float:right;
  height: 250px;
  width:250px;
  overflow: auto;
}
.Content
{

}
li.dropdown-menu-form {
    padding: 5px 10px 0;
    max-height: 100px;
    overflow-y: scroll;
}

#dd-list {
    padding-top: 5px;
    padding-bottom: 5px;
    padding-right: 20px;
    padding-left: 10px;
    font-weight: normal;
    overflow-y: scroll;
}


Corrected CSS:
ul.dropdown-menu-form {
    padding-left: 20px;
    list-style-type: none;
    max-height: 100px;
    overflow-y: scroll;
}
ゴールドパール

JS FIDDLE

HTML

<nav>
<ul class="dropdown">
            <li class="drop"><a href="#">Team Profile</a>
                <ul class="sub_menu">
                            <li><a href="#">Chelsea</a></li>
                <li><a href="#">Man City</a></li>
                <li><a href="#">Southampton</a></li> 
                <li><a href="#">Man Utd</a></li>
                <li><a href="#">Arsenal</a></li>
                <li><a href="#">Liverpool</a></li>
                <li><a href="#">West Ham</a></li>
                <li><a href="#">Newcastle</a></li>
                <li><a href="#">Leichester</a></li>
                <li><a href="#">QPR</a></li>
                <li><a href="#">Burnley</a></li>
                <li><a href="#">Aston Villa</a></li>
                <li><a href="#">Stoke City</a></li>
                <li><a href="#">Crystal Palace</a></li>
                <li><a href="#">Hull City</a></li>
                <li><a href="#">Sunderland</a></li>
                <li><a href="#">Tottenham Hotspur</a></li>
                <li><a href="#">Everton</a></li>
                <li><a href="#">Swansea</a></li>
                <li><a href="#">West Brom</a></li>
                </ul>
            </li>

            </li>
        </ul>
</nav> 

CSS

body{
  margin: 0px;
  padding: 0px;
  background: #000;
  font-family: 'Lato', sans-serif;
}

h1{
  margin: 2em 0px;
  padding: 0px;
  color: #fff;
  text-align: center;
  font-weight: 100;
  font-size: 50px;
}

nav{
  width: 750px;
  margin: 1em auto;
}

ul{
  margin: 0px;
  padding: 0px;
  list-style: none;
}

ul.dropdown{ 
  position: relative; 
  width: 100%; 
}

ul.dropdown li{ 
  font-weight: bold; 
  float: left; 
  width: 180px; 
  position: relative;
  background: #ecf0f1;
}

ul.dropdown a:hover{ 
  color: #000; 
}

ul.dropdown li a { 
  display: block; 
  padding: 20px 8px;
  color: #34495e; 
  position: relative; 
  z-index: 2000; 
  text-align: center;
  text-decoration: none;
  font-weight: 300;
}

ul.dropdown li a:hover,
ul.dropdown li a.hover{ 
  background: #3498db;
  position: relative;
  color: #fff;
}


ul.dropdown ul{ 
 display: none;
 position: absolute; 
  top: 0; 
  left: 0; 
  width: 180px; 
  z-index: 1000;
}

ul.dropdown ul li { 
  font-weight: normal; 
  background: #f6f6f6; 
  color: #000; 
  border-bottom: 1px solid #ccc; 
}

ul.dropdown ul li a{ 
  display: block; 
  color: #34495e !important;
  background: #eee !important;
} 

ul.dropdown ul li a:hover{
  display: block; 
  background: #3498db !important;
  color: #fff !important;
} 

.drop > a{
  position: relative;
}

.drop > a:after{
  content:"";
  position: absolute;
  right: 10px;
  top: 40%;
  border-left: 5px solid transparent;
  border-top: 5px solid #333;
  border-right: 5px solid transparent;
  z-index: 999;
}

.drop > a:hover:after{
  content:"";
   border-left: 5px solid transparent;
  border-top: 5px solid #fff;
  border-right: 5px solid transparent;
}

Javascript

/*
* 
* Credits to http://css-tricks.com/long-dropdowns-solution/
*
*/

var maxHeight = 400;

$(function(){

    $(".dropdown > li").hover(function() {

         var $container = $(this),
             $list = $container.find("ul"),
             $anchor = $container.find("a"),
             height = $list.height() * 1.1,       // make sure there is enough room at the bottom
             multiplier = height / maxHeight;     // needs to move faster if list is taller

        // need to save height here so it can revert on mouseout            
        $container.data("origHeight", $container.height());

        // so it can retain it's rollover color all the while the dropdown is open
        $anchor.addClass("hover");

        // make sure dropdown appears directly below parent list item    
        $list
            .show()
            .css({
                paddingTop: $container.data("origHeight")
            });

        // don't do any animation if list shorter than max
        if (multiplier > 1) {
            $container
                .css({
                    height: maxHeight,
                    overflow: "hidden"
                })
                .mousemove(function(e) {
                    var offset = $container.offset();
                    var relativeY = ((e.pageY - offset.top) * multiplier) - ($container.data("origHeight") * multiplier);
                    if (relativeY > $container.data("origHeight")) {
                        $list.css("top", -relativeY + $container.data("origHeight"));
                    };
                });
        }

    }, function() {

        var $el = $(this);

        // put things back to normal
        $el
            .height($(this).data("origHeight"))
            .find("ul")
            .css({ top: 0 })
            .hide()
            .end()
            .find("a")
            .removeClass("hover");

    });  

});

JS FIDDLE

クレジット:Larry Geamsクレジット:http://css-tricks.com/long-dropdowns-solution/

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

スクロール可能なドロップダウンメニューを修正

分類Dev

プログラムでスクロール可能なドロップダウンメニューを作成する(iOS / Swift)

分類Dev

CSSでスクロール可能なドロップダウンメニューを試す

分類Dev

要素UIフレームワークのスクロール可能なドロップダウンメニュー

分類Dev

スクロール可能なアニメーションのドロップダウンメニューを作成するにはどうすればよいですか?

分類Dev

静的ドロップダウンメニューを作成する

分類Dev

セマンティックUIを使用してサブメニューのスクロール可能なドロップダウンを作成するにはどうすればよいですか?

分類Dev

GoogleスプレッドシートデータからWebページにドロップダウンメニューを作成/入力する

分類Dev

ホバードロップダウンメニューをクリック可能なドロップダウンメニューに変換します

分類Dev

スクリーンショットを作成するためにウィンドウフォーカスを変更するときに、Webページのダウンダウンメニューをアクティブに保つ非プログラム的な方法はありますか?

分類Dev

jspページのドロップダウンメニューから値を表示する方法

分類Dev

ドロップダウンメニューをページの中央に配置する

分類Dev

MicrosoftWordのドロップダウンメニューに新しいページ番号形式を追加する

分類Dev

文字列のマップを使用して動的なドロップダウンメニューを作成する

分類Dev

スターハックなしでドロップダウンメニューのCSSスタイルを修正

分類Dev

ドロップダウンメニューを作成するためのチェックボックス付きの再帰的な口ひげ

分類Dev

クリックすると閉じるホバー可能なドロップダウンメニュー

分類Dev

CSSドロップダウンメニューは、Chromeのボタンをクリックしてホバーするとページを下にスクロールします

分類Dev

ブートストラップのリンクにドロップダウンメニューを追加する

分類Dev

同じページに再利用可能なドロップダウンリストを作成するasp.netc#

分類Dev

Bootstrapのドロップダウンメニューのホバーに関するページの説明

分類Dev

OpenPyXL:Excelシートにドロップダウンメニューを作成することは可能ですか?

分類Dev

ドロップダウンメニューをクリック可能にしてリダイレクトする

分類Dev

cssを使用してマウスオーバーでドロップダウンメニューを作成する

分類Dev

HTMLでスクロール可能なドロップダウンリストを作成する方法

分類Dev

Bootstrap4を使用してAngular6のクリック可能なテーブル行にドロップダウンメニューを追加します

分類Dev

さまざまなメニュー項目のドロップダウンを作成する方法

分類Dev

クリックするのではなく、ホバー時にTwitterBootstrapメニューのドロップダウンを作成する方法

分類Dev

djangoのモデルからドロップダウンメニューを作成する方法

Related 関連記事

  1. 1

    スクロール可能なドロップダウンメニューを修正

  2. 2

    プログラムでスクロール可能なドロップダウンメニューを作成する(iOS / Swift)

  3. 3

    CSSでスクロール可能なドロップダウンメニューを試す

  4. 4

    要素UIフレームワークのスクロール可能なドロップダウンメニュー

  5. 5

    スクロール可能なアニメーションのドロップダウンメニューを作成するにはどうすればよいですか?

  6. 6

    静的ドロップダウンメニューを作成する

  7. 7

    セマンティックUIを使用してサブメニューのスクロール可能なドロップダウンを作成するにはどうすればよいですか?

  8. 8

    GoogleスプレッドシートデータからWebページにドロップダウンメニューを作成/入力する

  9. 9

    ホバードロップダウンメニューをクリック可能なドロップダウンメニューに変換します

  10. 10

    スクリーンショットを作成するためにウィンドウフォーカスを変更するときに、Webページのダウンダウンメニューをアクティブに保つ非プログラム的な方法はありますか?

  11. 11

    jspページのドロップダウンメニューから値を表示する方法

  12. 12

    ドロップダウンメニューをページの中央に配置する

  13. 13

    MicrosoftWordのドロップダウンメニューに新しいページ番号形式を追加する

  14. 14

    文字列のマップを使用して動的なドロップダウンメニューを作成する

  15. 15

    スターハックなしでドロップダウンメニューのCSSスタイルを修正

  16. 16

    ドロップダウンメニューを作成するためのチェックボックス付きの再帰的な口ひげ

  17. 17

    クリックすると閉じるホバー可能なドロップダウンメニュー

  18. 18

    CSSドロップダウンメニューは、Chromeのボタンをクリックしてホバーするとページを下にスクロールします

  19. 19

    ブートストラップのリンクにドロップダウンメニューを追加する

  20. 20

    同じページに再利用可能なドロップダウンリストを作成するasp.netc#

  21. 21

    Bootstrapのドロップダウンメニューのホバーに関するページの説明

  22. 22

    OpenPyXL:Excelシートにドロップダウンメニューを作成することは可能ですか?

  23. 23

    ドロップダウンメニューをクリック可能にしてリダイレクトする

  24. 24

    cssを使用してマウスオーバーでドロップダウンメニューを作成する

  25. 25

    HTMLでスクロール可能なドロップダウンリストを作成する方法

  26. 26

    Bootstrap4を使用してAngular6のクリック可能なテーブル行にドロップダウンメニューを追加します

  27. 27

    さまざまなメニュー項目のドロップダウンを作成する方法

  28. 28

    クリックするのではなく、ホバー時にTwitterBootstrapメニューのドロップダウンを作成する方法

  29. 29

    djangoのモデルからドロップダウンメニューを作成する方法

ホットタグ

アーカイブ