javascript - 修改导航中的jQuery滑动下划线

标签 javascript jquery html css

我的导航下有以下滑动下划线元素。这个想法是,当一个链接悬停时,下划线会滑到该元素上。见代码笔: https://codepen.io/lucasengnz/pen/eQaQxy

我遇到的问题是,当未使用导航时,我希望下划线滑回第一个链接。我不知道如何执行此操作,因为我对使用 javascriptjQuery 还很陌生。有什么指点吗?

$(".underline-nav").css("width", $("#one").width());
$(".underline-nav").css("margin-left", $("#one").css("margin-left"));

$('nav a').hover(function() {
  $(".underline-nav").css("width", $(this).width());
  $(".underline-nav").css("margin-left", $(this).css("margin-left"));
  var position = $(this).position();
  $(".underline-nav").css("left", position.left);
})
.underline-nav {
  background: tomato;
  height: .25rem;
  position: absolute;
  top: 1.8em;
  transition: all ease 0.3s;
}

nav {
  font-size: 1.85em;
}

nav a {
  text-decoration: none;
  color: #000;
  float: left;
  margin-top: 1vh;
}

#one {
  margin-left: 2vw;
}

.floatright {
  float: right;
  padding-right: 3vw;
}

.floatright a {
  margin-left: 4vw;
}
<div class="container">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <nav>
    <a id="one" href="#">one</a>
    <div class="floatright">
      <a id="tt" href="#">two</a>
      <a href="#">three</a>
      <a href="#">four</a>
      <a href="#">five</a>
    </div>
    <div class="underline-nav">
    </div>
  </nav>
</div>

感谢您的帮助

最佳答案

你可以这样做:

    $(".underline-nav").css("width", $("#one").width());
    $(".underline-nav").css("margin-left", $("#one").css("margin-left"));
    var unav = $(".underline-nav");
    $('nav a').mouseover(function(){
        var position = $(this).position();
        unav.css({
          "width": $(this).width(),
          "margin-left": $(this).css("margin-left"),
          "left": position.left
        });
    })
    $('nav').mouseleave(function() {
      var firstChild = $(this).find('a:first-child');
      var position = firstChild.position();
        unav.css({
          "width": firstChild.width(),
          "margin-left": firstChild.css("margin-left"),
          "left": position.left
        });
    })

关于javascript - 修改导航中的jQuery滑动下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53628571/

相关文章:

javascript - 在每个页面上打印一个 HTML 标题

jquery - 如何使用 JS/jQuery 使滚动 div 专注于页面加载?

jquery - 当宽度不够时,使 Bootstrap 导航栏中的可扩展搜索表单出现在其他所有内容之上

jquery - 如何在 Jquery 中单独选择它们

javascript - CSS 不会对齐 <li>

java - Jsoup:如何将包含 HTML 的字符串转换为 XHTML 文档?

javascript - 我们如何禁用元素的默认浏览器样式属性?

javascript - Android WebView : Using Script Tags to Load an external javascript file from my assets folder

javascript - 有没有办法将名字和姓氏的第一个字母大写并使其成为Javascript中的首字母

javascript - 圆形动画运行一段时间后速度加快