JS CSS Toggle Button没有向上移动

时间:2016-05-09 19:41:36

标签: javascript jquery css

问题是,我的打开按钮在隐藏后不想再登上。它仍处于相同的位置! https://fiddle.jshell.net/4fs5x0p4/

    <script type='text/javascript'>//<![CDATA[
    $(function(){
    $("#open").toggle(
      function () {
          $('#navibar').animate({height: "-50px"});
      },
      function () {
        $('#navibar').animate({height: "50px"});
      }
    );

    });//]]> 

    </script>
    <div id="navibar">
        <nav>
            <ul>
                <li><a href="#">WordPress</a>
                    <ul>
                        <li><a href="#">Themes</a></li>
                        <li><a href="#">Plugins</a></li>
                        <li><a href="#">Tutorials</a></li>
                    </ul>        
                </li>
            </ul>
        </nav>
    </div>
    <div id="open"></div>

1 个答案:

答案 0 :(得分:1)

按钮保持在同一位置,因为它不是嵌套/部分navibar块,因为它的位置是绝对的。

我猜你想要这样的东西: https://fiddle.jshell.net/4fs5x0p4/1/

这是剧本:

$(function() {
  $("#open").toggle(
    function() {
      $('#navibar').animate({
        height: "-50px"
      }, 800);
      $(this).css("top", "0px");
    },
    function() {
      $('#navibar').animate({
        height: "50px"
      }, 500);
      $(this).css("top", "30px");
    }
  );
});

我将transition: top 0.5s ease-out;添加到#open样式中。 根据自己的喜好微调过渡和动画时间。