1

このページhttp://kimcolemanprojects.com/で、クリックすると開き、同じアンカーをクリックすると再び閉じるドロップダウンメニューが必要です。このサイトで動作するようにhttp://angela-moore.co.uk/

これは、これまでのメニューの html です。

<div class="left" id="nav">
<ul id="menu">
<li id="light">
<a href="lighting_video.html">Lighting + Video</a>
   <ul style="display: none;">
     <li><a href="django_django.html">Django Django</a></li>
     <li><a href="suntrap.html">Suntrap</a></li>
  </ul>
</li>
<li id="photo">
<a href="photograms.html">Photograms</a>
</li>
<li id="about">
<a class="active" href="about.html">About</a>
</li></ul>
</div><!--end nav-->

ご覧のとおり、1 つのリスト項目内で機能するだけで十分です。このための Javascript を書くのに助けが必要です。

したがって、インデックス ページでは、ユーザーは照明 + ビデオ、フォトグラム、概要の 3 つのリンクを見ることができます。ユーザーが照明 + ビデオをクリックすると、その下にサブメニューが開き、さらにリンクが表示されます。その後、ユーザーが照明 + ビデオをもう一度クリックすると、再び閉じます。インデックス ページの最初の 3 つのリンクでも同じことが起こります。

4

1 に答える 1

3

とてもシンプルな..

<script src="jquery.js"></script>
<div id="navigation">
<p><a href="#" id="toggle">Menu</a></p>
<ul id="menu">



    <li><a href="/#" class="book-campaigns">Menu 1</a><ul>
        <li><a href="#"  class="lol">lol</a></li><li><a href="#"  class="lol">lol2</a></li><li><a href="#"  class="lol">lol</a></li><li><a href="#"  class="lol">lol2</a></li>
    </ul></li>

    <li><a href="/#" class="book-campaigns">Menu 2</a><ul>
        <li><a href="#"  class="lol">lol</a></li><li><a href="#"  class="lol">lol2</a></li><li><a href="#"  class="lol">lol</a></li><li><a href="#"  class="lol">lol2</a></li>
    </ul></li>

            <li><a href="/#" class="book-campaigns">Menu 3</a><ul>
        <li><a href="#"  class="lol">lol</a></li><li><a href="#"  class="lol">lol2</a></li><li><a href="#"  class="lol">lol</a></li><li><a href="#"  class="lol">lol2</a></li>
    </ul></li>

            <li><a href="/#" class="book-campaigns">Menu 4</a><ul>
        <li><a href="#"  class="lol">lol</a></li><li><a href="#"  class="lol">lol2</a></li><li><a href="#"  class="lol">lol</a></li><li><a href="#"  class="lol">lol2</a></li>
    </ul></li>

これは HTML コンテナーなどになります。この下には、その非表示と変更を制御するための JavaScript が必要です!! アーティスティックな気分なら、スタイリングを追加することもできます。

<script>
var showMenuText = $('#toggle').text();
var hideMenuText = 'Close';

$('#navigation ul').hide();
$('#navigation ul a.active+ul').show();

hideMenu = function() {
    $('#navigation ul#menu').hide();
    $('#navigation').removeClass('open');
    $('#toggle').text(showMenuText);
}

$('#toggle').click(function(event){
    event.stopPropagation(); event.preventDefault();
    $('#navigation ul#menu').toggle();
    $('#navigation').toggleClass('open');
    var toggleText = $('#toggle').text();
    (toggleText == showMenuText) ? $(this).text(hideMenuText) : $(this).text(showMenuText);
});

$('ul#menu > li > a').click(function(event){
    $this = $(this);
    if( $this.hasClass('page') ) parent.location = $this.attr('href');
    if( $this.hasClass('home') ) { parent.location = '/'; }

    event.preventDefault(); event.stopPropagation();
    if( $this.hasClass('active') ) var justclosed = true;
    $('a.active').removeClass('active').next('ul').hide();
    if(!justclosed) $this.addClass('active').next('ul').show();
});

</script>

これは単純な HTML の例であり、好きなように実行できます。

于 2013-01-30T13:05:20.567 に答える