css:悬停时的动画边框

时间:2014-12-20 07:22:40

标签: javascript css css3

我正在尝试创建带边框的菜单(请参阅http://multijuice.org/),我需要在悬停时将边框从活动元素移动到hover ed。我怎么能这样做?也许,有人知道一些教程吗?

UPD:完成!请参阅this js file以获取答案。谢谢大家!

2 个答案:

答案 0 :(得分:4)

演示 - http://jsfiddle.net/victor_007/gujrud4y/

你可以使用这样的东西,但是你需要在每个页面上更改下划线的位置,或者你可以使用jQuery来检查哪个<li>有活动的类并相应地设置

&#13;
&#13;
nav {
  text-align: center;
}
ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: inline-block;
  position: relative;
  font-size: 0px;
}
ul li {
  display: inline-block;
  padding: 8px 0;
  width: 80px;
  text-align: center;
  font-size: 15px;
  cursor: pointer;
}
span.border {
  height: 2px;
  background: red;
  width: 80px;
  position: absolute;
  left: 80px;
  bottom: 0;
  transition: .5s linear;
}
li:nth-child(1):hover ~ span.border {
  left: 0px;
}
li:nth-child(2):hover ~ span.border {
  left: 80px;
}
li:nth-child(3):hover ~ span.border {
  left: 160px;
}
li:nth-child(4):hover ~ span.border {
  left: 240px;
}
&#13;
<nav>
  <ul>
    <li>one</li>
    <li class="active">two</li>
    <li>three</li>
    <li>four</li>
    <span class="border"></span>
  </ul>
</nav>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试在代码中更改此css类:

更改此

#main-nav .current-menu-item a, #main-nav .current_page_item a, .selected{
     border-bottom: 3px solid #f5503b;
     padding-bottom: 72px;
     padding-left: 10px;
     padding-right: 10px;
}

#main-nav .current-menu-item a, #main-nav .current_page_item a, .selected, #main-nav li a:hover {
    border-bottom: 3px solid #f5503b;
}

并将padding提供给类.#main-nav li a,如下所示:

#main-nav li a {
   border: 0 none;
   color: #111;
   display: block;
   height: 36px;
   line-height: 36px;
   margin: 0 10px;
   padding-bottom: 72px;
   padding-left: 10px;
   padding-right: 10px;
}