简体   繁体   English

向下滑动并向上滑动切换

[英]Slide Down and Slide Up Toggle

I am trying to build a slide down menu with four headings. 我正在尝试构建一个包含四个标题的下拉菜单。 Once I click on a heading its list has to slide down and slide back up once clicked again. 一旦我点击标题,其列表必须向下滑动并再次单击后再向上滑动。 I could do this only with all the lists, I mean once I click any heading all the list slide at same time. 我只能在所有列表中执行此操作,我的意思是一旦我同时点击所有列表幻灯片的任何标题。 Could you please help to make each list which belongs to heading to appear once clicked. 能否帮助您点击属于标题的每个列表。 Thanks. 谢谢。

HTML HTML

<nav>
    <ul>
          <li class="menu-block">heading1
            <ul>
            <li><a href="">item</a></li>
            <li><a href="">item</a></li>
            <li><a href="">item</a></li>
            </ul>
          </li>
          <li class="menu-block">heading2
            <ul>
            <li><a href="">item</a></li>
            <li><a href="">item</a></li>
            <li><a href="">item</a></li>
            </ul>
          </li>
          <li class="menu-block">heading3
            <ul>
            <li><a href="">item</a></li>
            <li><a href="">item</a></li>
            <li><a href="">item</a></li>
            </ul>
          </li>
          <li class="menu-block">heading4
            <ul>
            <li><a href="">item</a></li>
            <li><a href="">item</a></li>
            <li><a href="">item</a></li>
            </ul>
          </li>
    </ul>
</nav>

CSS CSS

nav{
    position:fixed;
    right: 0;
    background: #fff;
    color: #000;
    height: 100%;
    width: 100%;
}
nav ul:first-child{
    float: right;
    position: relative;
    height: 100%;
    width:30%;
    background: #fff;
    text-align: center;
}
nav .menu-block li{
    width: 50%;
    height: auto;
    border: 1px solid black;
    font-size: 0.8em;
    text-align: left;
    display: none;
}

JQuery JQuery的

$(".menu-block").click(function(){
    $(this).find('nav .menu-block li').slideDown(500);
});

You need to find the li s inside the clicked li . 你需要找到li的点击在s li Besides, you might want to use slideToggle for this purpose: 此外,您可能希望使用slideToggle来实现此目的:

$(".menu-block").click(function(){
    $(this).find('li').slideToggle(500);
});

Demo: 演示:

https://jsfiddle.net/q2gzamg6/ https://jsfiddle.net/q2gzamg6/

PS. PS。 You need to work on your css style definition here. 你需要在这里处理你的css样式定义。

Use this way: 使用这种方式:

$(".menu-block").click(function(){
    $(this).find('ul').slideDown(500);
});

Snippet 片段

 $(function () { $(".menu-block").click(function(){ $(this).find('ul').slideDown(500); }); }); 
 nav{ position:fixed; right: 0; background: #fff; color: #000; height: 100%; width: 100%; } nav ul:first-child{ float: right; position: relative; height: 100%; width:30%; background: #fff; text-align: center; } nav .menu-block li{ width: 50%; height: auto; border: 1px solid black; font-size: 0.8em; text-align: left; display: none; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <nav> <ul> <li class="menu-block">heading1 <ul> <li><a href="">item</a></li> <li><a href="">item</a></li> <li><a href="">item</a></li> </ul> </li> <li class="menu-block">heading2 <ul> <li><a href="">item</a></li> <li><a href="">item</a></li> <li><a href="">item</a></li> </ul> </li> <li class="menu-block">heading3 <ul> <li><a href="">item</a></li> <li><a href="">item</a></li> <li><a href="">item</a></li> </ul> </li> <li class="menu-block">heading4 <ul> <li><a href="">item</a></li> <li><a href="">item</a></li> <li><a href="">item</a></li> </ul> </li> </ul> </nav> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM