2016-07-29 7 views
2

全幅ドロップダウンアイテム(メガメニュー)でメニューを作成するにはどうすればいいですか? 私はこのようなメニューを構築しようとしていますexample 私はセマンティックUIのポップアップを利用しようとしましたが、これは最初のメニュー項目(エラー: "ポップアップはビューポートの境界内に収まりません")でのみ機能します。 代わりにドロップダウンを使用して解決策を提示しますが、画面の全幅を使用しません。あなたもジャバスクリプトない、そのためのjQueryを必要としないセマンティックUI全角メニュードロップダウン

$('#menu1') 
 
    .popup({ 
 
    popup: '#menucontent1', 
 
    hoverable: true 
 
    }); 
 
    
 
    $('#menu2') 
 
    .popup({ 
 
    popup: '#menucontent2', 
 
    hoverable: true 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.2/semantic.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.2/semantic.min.js"></script> 
 
<div class="ui secondary pointing menu"> 
 
    <a class="browse item" id="menu1"> 
 
    Item 1</a> 
 
    <a class="browse item" id="menu2"> 
 
    Item 2</a> 
 
</div> 
 
<div class="ui fluid popup bottom left transition hidden" id="menucontent1"> 
 
    <div class="ui four column relaxed equal height divided grid"> 
 
    <div class="column"> 
 
     <h4 class="ui header">Fabrics</h4> 
 
     <div class="ui link list"> 
 
     <a class="item">Viscose</a> 
 
     </div> 
 
     <h4 class="ui header">Fabrics Level 2</h4> 
 
     <div class="ui link list"> 
 
     <a class="item">Cashmere</a> 
 
     <a class="item">Linen</a> 
 
     <a class="item">Cotton</a> 
 
     </div> 
 
    </div> 
 
    <div class="column"> 
 
     <h4 class="ui header">Size</h4> 
 
     <div class="ui link list"> 
 
     <a class="item">Small</a> 
 
     <a class="item">Medium</a> 
 
     <a class="item">Large</a> 
 
     <a class="item">Plus Sizes</a> 
 
     </div> 
 
    </div> 
 
    <div class="column"> 
 
     <h4 class="ui header">Colored</h4> 
 
     <div class="ui link list"> 
 
     <a class="item">Neutrals</a> 
 
     <a class="item">Brights</a> 
 
     <a class="item">Pastels</a> 
 
     </div> 
 
    </div> 
 
    <div class="column"> 
 
     <h4 class="ui header">Types</h4> 
 
     <div class="ui link list"> 
 
     <a class="item">Knitwear</a> 
 
     <a class="item">Outerwear</a> 
 
     <a class="item">Pants</a> 
 
     <a class="item">Shoes</a> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div> 
 
<div class="ui fluid popup bottom left transition hidden" id="menucontent2"> 
 
    <div class="ui four column relaxed equal height divided grid"> 
 
    <div class="column"> 
 
     <h4 class="ui header">Fabrics</h4> 
 
    </div> 
 
    <div class="column"> 
 
     
 
    </div> 
 
    <div class="column"> 
 
     
 
    </div> 
 
    <div class="column"> 
 
     
 
    </div> 
 
    </div> 
 
</div>

+1

[jsfiddle](https://jsfiddle.net/L20w60h0/3/)ベースの私のソリューション@MarouenMhirisの答えにd。 – user3333137

答えて

1

: 私はそれのために小さなフィドルをした:

<div class="ui secondary pointing menu"> 
    <ul class="menu"> 
     <li> 
      <a class="browse item" id="menu1" data-target="#menucontent1"> 
       Item 1</a> 
      <div class="popup" id="menucontent1"> 
       <div class="ui four column relaxed equal height divided grid"> 
        <div class="column"> 
         <h4 class="ui header">Fabrics</h4> 
         <div class="ui link list"> 
          <a class="item">Viscose</a> 
         </div> 
         <h4 class="ui header">Fabrics Level 2</h4> 
         <div class="ui link list"> 
          <a class="item">Cashmere</a> 
          <a class="item">Linen</a> 
          <a class="item">Cotton</a> 
         </div> 
        </div> 
        <div class="column"> 
         <h4 class="ui header">Size</h4> 
         <div class="ui link list"> 
          <a class="item">Small</a> 
          <a class="item">Medium</a> 
          <a class="item">Large</a> 
          <a class="item">Plus Sizes</a> 
         </div> 
        </div> 
        <div class="column"> 
         <h4 class="ui header">Colored</h4> 
         <div class="ui link list"> 
          <a class="item">Neutrals</a> 
          <a class="item">Brights</a> 
          <a class="item">Pastels</a> 
         </div> 
        </div> 
        <div class="column"> 
         <h4 class="ui header">Types</h4> 
         <div class="ui link list"> 
          <a class="item">Knitwear</a> 
          <a class="item">Outerwear</a> 
          <a class="item">Pants</a> 
          <a class="item">Shoes</a> 
         </div> 
        </div> 
       </div> 
      </div> 
     </li> 
     <li> 
      <a class="browse item" id="menu2" data-target="#menucontent2"> 
       Item 2</a> 
      <div class="popup" id="menucontent2"> 
       <div class="ui four column relaxed equal height divided grid"> 
        <div class="column"> 
         <h4 class="ui header">Fabrics</h4> 
        </div> 
        <div class="column"> 

        </div> 
        <div class="column"> 

        </div> 
        <div class="column"> 

        </div> 
       </div> 
      </div> 
     </li> 
    </ul> 
</div> 

とCSS:

.menu { 
    list-style: none; 
} 
.menu li { 
    float: left; 
    margin-right: 1em; 
} 
.popup { 
    background-color: #fff; 
    position: absolute; 
    border-radius: 5px; 
    border: 1px solid grey; 
    left: 0; 
    right: 0; 
    opacity: 0; 
    transition: opacity 0.5s ease; 
    padding: 1em; 
} 

.item:hover~div { 
    opacity: 1; 
} 
+0

ありがとうございます。私はあまりにも複雑すぎると思った。私は、アクティブなクラスを変更し、オープン/クローズの動作(ホバー/クリック)を変更するためにjavascriptに依存すると思うが、あなたの答えは私に正しい方向を与えた。 – user3333137

+0

私は助けてくれるとうれしいです:-) –

関連する問題