javascript - flex CSS 菜单

标签 javascript jquery html css

我有这个 css 菜单,当鼠标移开时,底线将跟随移动并返回原点

不过,定位有点奇怪。 任何人都知道如何将线居中到中间?

var activeOffset = $('nav ul .active').position().left;
var activeItemWidth = $('nav ul .active').width();

$('document').ready(function() {
  $('.dot').css('left', activeOffset + activeItemWidth / 2);;
});

$('nav').mouseout(function() {
  $('.dot').css('left', activeOffset + activeItemWidth / 2);

});

$('nav ul li').hover(function() {
  var navOffset = $(this).position().left;
  var navItemWidth = $(this).width();

  $('.dot').css('left', navOffset + navItemWidth / 2);

});
nav {
  position: fixed;
  top: 70px;
  left: 50%;
  width: 1024px;
  text-align: center;
  transform: translateX(-50%) translateY(0);
  -webkit-transform: translateX(-50%) translateY(0);
}

nav:after {
  content: "";
  display: table;
  clear: both;
}

nav ul li {
  list-style: none;
  display: inline-block;
  oveflow: hidden;
}

nav ul li a {
  display: block;
  padding: 10px 10px;
  text-decoration: none;
  font-size: 18px;
  position: relative;
  color: rgba(0, 0, 0, 1);
  /* -webkit-transform: translateX(-15%);
          transform: translateX(-15%);*/
  border-radius: 50px;
  /*  width: 130%;*/
  text-align: center;
  -webkit-transition-duration: 0.25s;
  transition-duration: 0.25s;
}

nav ul li a:hover {
  color: #da98b4;
}

nav ul li.active a {
  color: black;
}

nav .dot {
  background-color: #da98b4;
  width: 76px;
  height: 8px;
  position: absolute;
  bottom: 0;
  left: 0;
  border-radius: 25px;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
  <div class="dot"></div>
  <ul>
    <li class="active"><a href="#">AAAA</a></li>
    <li><a href="#">BBBB</a></li>
    <li><a href="#">CCCC</a></li>
    <li><a href="#">DDDD</a></li>
    <li><a href="#">EEEE</a></li>
    <li><a href="#">FFFF</a></li>
    <li><a href="#">GGGG</a></li>
    <li><a href="#">HHHH</a></li>
  </ul>
</nav>

最佳答案

var activeOffset = $('nav ul .active').position().left;
var activeItemWidth = $('nav ul .active').width();

$('document').ready(function() {
  $('.dot').css({
   'left' : activeOffset,
   'width' : activeItemWidth
});
});

$('nav').mouseout(function() {
 $('.dot').css({
   'left' : activeOffset,
   'width' : activeItemWidth
});

});

$('nav ul li').hover(function() {
  var navOffset = $(this).position().left;
  var navItemWidth = $(this).width();
$('.dot').css({
   'left' : navOffset,
   'width' : navItemWidth
});

});
nav {
  position: fixed;
  top: 70px;
  left: 50%;
  width: 1024px;
  text-align: center;
  transform: translateX(-50%) translateY(0);
  -webkit-transform: translateX(-50%) translateY(0);
}

nav:after {
  content: "";
  display: table;
  clear: both;
}

nav ul li {
  list-style: none;
  display: inline-block;
  oveflow: hidden;
}

nav ul li a {
  display: block;
  padding: 10px 10px;
  text-decoration: none;
  font-size: 18px;
  position: relative;
  color: rgba(0, 0, 0, 1);
  /* -webkit-transform: translateX(-15%);
          transform: translateX(-15%);*/
  border-radius: 50px;
  /*  width: 130%;*/
  text-align: center;
  -webkit-transition-duration: 0.25s;
  transition-duration: 0.25s;
}

nav ul li a:hover {
  color: #da98b4;
}

nav ul li.active a {
  color: black;
}

nav .dot {
  background-color: #da98b4;
  width: 76px;
  height: 8px;
  position: absolute;
  bottom: 0;
  left: 0;
  border-radius: 25px;
  -webkit-transition-duration: 0.5s;
  transition-duration: 0.5s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<nav>
  <div class="dot"></div>
  <ul>
    <li class="active"><a href="#">官方首页</a></li>
    <li><a href="#">老虎机</a></li>
    <li><a href="#">真人娱乐</a></li>
    <li><a href="#">捕鱼游戏</a></li>
    <li><a href="#">体育博彩</a></li>
    <li><a href="#">彩票游戏</a></li>
    <li><a href="#">火热优惠</a></li>
    <li><a href="#">特级贵宾</a></li>
  </ul>
</nav>

检查这个:)

关于javascript - flex CSS 菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43694749/

相关文章:

javascript - 为什么当我们在浏览器中按下后退按钮时 jquery 不隐藏内容

javascript - 如何同时监听谷歌地图中的多个DOM事件?

python - 如何保存这个文件?

javascript - startAngle 在 HTML5 canvas 椭圆中意味着什么?

javascript - TypeScript 与 Node.js ESM 的分歧

javascript - AJAX评论系统验证问题

javascript - 如何只允许滚动条滚动

javascript - Javascript 订购表格无法计算时遇到问题

javascript - 如何使用 URLSearchParams 从给定 url 中的一组值中有效地仅删除一个查询字符串?

javascript - html javascript 代码未正确加载