javascript - 下拉动画到普通下拉

标签 javascript css

我有这个下拉菜单 enter image description here

这是我的代码:

$(function() {
  $('.click-nav > ul').toggleClass('no-js js');
  $('.click-nav .js ul').hide();
  $('.click-nav .js').click(function(e) {
    $('.click-nav .js ul').slideToggle(200);
    $('.clicker').toggleClass('active');
    e.stopPropagation();
  });
  $(document).click(function() {
    if ($('.click-nav .js ul').is(':visible')) {
      $('.click-nav .js ul', this).slideUp();
      $('.clicker').removeClass('active');
    }
  });
});
.fa-caret-down {
  postion: relative;
}

#canvas-dropdown {
  position: absolute;
  left: 145px;
  top: 35px;
}

.dropdown>.dropdown-menu {
  display: none;
  position: absolute;
  border: 1px solid #bdc3c7;
  min-width: 60px;
  margin: 0;
}

.dropdown.open>.dropdown-menu {
  display: inline-block;
}

.click-nav ul {
  position: relative;
  display: inline-block;
  margin-left: -40px
}

.click-nav ul li {
  position: relative;
  list-style: none;
  cursor: pointer;
}

.click-nav ul li ul {
  position: absolute;
  left: 0;
  right: 0;
}

.click-nav ul .clicker {
  position: relative;
}

.click-nav ul li a {
  display: block;
  color: black;
  text-decoration: none;
  margin-left: -30px;
  margin-top: 55px
}

.click-nav .no-js ul {
  display: none;
}

.click-nav .no-js:hover ul {
  display: block;
}

.click-nav ul li a {
  transition: background-color 0.2s ease-in-out;
  -webkit-transition: background-color 0.2s ease-in-out;
  -moz-transition: background-color 0.2s ease-in-out;
  display: block;
  padding: 8px 10px 8px 0px;
  background: #FFF;
  color: #18181d;
  text-decoration: none;
}

.click-nav ul li a:hover {
  background: #F2F2F2;
  color: #18181d;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="click-nav">
      <ul class="no-js">
        <li>
          <i class="fa fa-caret-down clicker"></i> I  </span>
<ul style="margin-top:-35px;margin-left:-115px;width:160px;text-align:left;">
  <li><a href="../profile" style="margin-bottom:-60px;"> &nbsp; &nbsp;My Profile</a></li>
  <li><a href="../logout.php"> &nbsp; &nbsp;Logout</a></li>

</ul>
</li>
</ul>
</span>

https://jsfiddle.net/5p6d6urc/

它工作正常,但是当我单击向下箭头访问它时,它会以一种从顶部和按钮开始的缓动(弹出)方式打开。当我只需要像下拉菜单一样显示时。有没有可能,当我点击向下箭头时,下拉菜单只是下降而没有任何效果?

最佳答案

为什么不简单地将 slideToggle() 动画的持续时间更改为 1 毫秒?

这是更新后的 fiddle : https://jsfiddle.net/5p6d6urc/3/

$(function () {
  $('.click-nav > ul').toggleClass('no-js js');
  $('.click-nav .js ul').hide();
  $('.click-nav .js').click(function(e) {
    $('.click-nav .js ul').slideToggle(1);
    $('.clicker').toggleClass('active');
    e.stopPropagation();
  });
  $(document).click(function() {
    if ($('.click-nav .js ul').is(':visible')) {
      $('.click-nav .js ul', this).slideUp();
      $('.clicker').removeClass('active');
    }
  });
});
.click-nav {margin:100px auto;width:200px;}
.click-nav ul {position:relative;font-weight:900;padding-left:0}
.click-nav ul li {position:relative;list-style:none;cursor:pointer;}
.click-nav ul li ul {position:absolute;left:0;right:0;}
.click-nav ul .clicker {position:relative;background:#2284B5;color:#FFF;}
.click-nav ul .clicker:hover,.click-nav ul .active {background:#196F9A;}
.click-nav img {position:absolute;top:9px;left:12px;}
.click-nav ul li a {transition:background-color 0.2s ease-in-out;-webkit-transition:background-color 0.2s ease-in-out;
-moz-transition:background-color 0.2s ease-in-out;display:block;padding:8px 10px 8px 40px;background:#FFF;color:#333;text-decoration:none;}
.click-nav ul li a:hover {background:#F2F2F2;}

/* Fallbacks */
.click-nav .no-js ul {display:none;}
.click-nav .no-js:hover ul {display:block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="click-nav">
  <ul class="no-js">
    <li>
      <a href="#" class="clicker">hi</a>
      <ul>
        <li><a href="#">hi</a></li>
        <li><a href="#">hi</a></li>


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

关于javascript - 下拉动画到普通下拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44001166/

相关文章:

html - 更改单个 li 标签的行高

javascript - 带有 angularjs 的 Internet Explorer 中的 Blob url

javascript - CoffeeScript/JavaScript : why assign a letter to a variable that has a number assigned?

javascript - 在 React 中返回数组时如何添加换行符?

javascript - 根据 URL 中的哈希移动 HTML

javascript - 如何在执行操作时重新执行 jQuery

css - Macbook 视网膜 CSS : scrollable div scrollbar overlapped by parent scrollbar

javascript - 将 PHP 数组传递给 Javascript w/o 显示在源代码中

javascript - 我无法获得定位父 div 和父 sibling 的按钮

CSS 规则中的 Php 条件