CSS过渡效果淡化回原始文本颜色

5

我已经成功地将我的文本转换成了不同颜色,并且有1秒的延迟,但是当鼠标不再悬停在元素上时,我无法想出如何使其回到原始颜色而不立即返回。

我在网上找了很多资料,但并没有太大帮助。 如果我找到任何东西,我也不知道如何把它拼凑在一起以使其正常工作。

HTML:

<div id="navbar">
<div id="navlinks">
<nav>
<ul id="navlist">
<li><a href="#">HOME</a></li>
<li><a href="#">ASSIGNMENTS</a></li>
<li><a href="#">DREAM CARS</a></li>
<li><a href="#">PROJECTS</a></li>
<li><a href="#">CONTACT</a></li>
</ul>
</nav>
</div>
</div>

CSS(层叠样式表):
body{
margin:0 auto;
}
#logo{
margin:auto;
width:430px; 
}
#navbar{
width:100%;
height:50px;
display:table;
margin:auto;
}
#navlinks ul {
display:table;
border-collapse:collapse;
width:100%;
margin:0 0 20px;
padding:0;
list-style:none;
}
#navlinks li {
display: table-cell;
vertical-align: middle;
text-align:center;
width:20%;
background: linear-gradient(to right, #111 50%, #444 50%);
background-size: 200% 100%;
background-position:left top;
transition:all 1s ease;
-webkit-transition-delay:all 1s ease;
-moz-transition-delay:all 1s ease;
-ms-transition-delay:all 1s ease;
-o-transition-delay:all 1s ease;
}
#navlinks li:hover{
background-position:right top;
}
#navlinks a {
text-decoration:none;
color: #999;
text-transform: uppercase;
display:block;
padding-top:10px;
padding-bottom:10px;
font: bold 12px/25px Arial, Helvetica;
}

#navlinks a:hover{
color:black;
transition:all 1s ease;
-webkit-transition-delay:all 1s ease;
-moz-transition-delay:all 1s ease;
-ms-transition-delay:all 1s ease;
-o-transition-delay:all 1s ease;
}

我尝试按照jQuery教程操作,但是它并没有对页面产生任何影响。

在Jsfiddle中的演示


这是你要找的吗?http://jsfiddle.net/KHn3Z/1/ - G-Cyrillus
不,我的意思是,当你将鼠标移开选项卡时,滑块返回到原始颜色时,我希望文本也回到其原始颜色,但是要有一个淡出效果。 - user3453103
转换需要设置在默认状态或两者上。 - G-Cyrillus
2个回答

13
#navlinks a {
transition:color 1s ease;/*i just moved this from anchor*/
}

#navlinks li:hover a{
color:black;
}

工作演示

body{
  margin:0 auto;
}
#logo{
  margin:auto;
  width:430px; 
}
#navbar{
  width:100%;
  height:50px;
  display:table;
  margin:auto;
}
#navlinks ul {
  display:table;
  border-collapse:collapse;
  width:100%;
  margin:0 0 20px;
  padding:0;
  list-style:none;
}
#navlinks li {
  display: table-cell;
  vertical-align: middle;
  text-align:center;
  width:20%;
  background: linear-gradient(to right, #111 50%, #444 50%);
  background-size: 200% 100%;
  background-position:left top;
  transition:all 1s ease;
}
#navlinks li:hover{
  background-position:right top;
}
#navlinks a {
  text-decoration:none;
  color: #999;
  text-transform: uppercase;
  display:block;
  padding-top:10px;
  padding-bottom:10px;
  font: bold 12px/25px Arial, Helvetica;
  transition:color 1s ease-in-out;
}

#navlinks li:hover a{
  color:black;

}
<div id="navbar">
  <div id="navlinks">
    <nav>
      <ul id="navlist">
        <li><a href="#">HOME</a></li>
        <li><a href="#">ASSIGNMENTS</a></li>
        <li><a href="#">DREAM CARS</a></li>
        <li><a href="#">PROJECTS</a></li>
        <li><a href="#">CONTACT</a></li>
      </ul>
    </nav>
  </div>
</div>


0

在CSS中,过渡效果不应该在悬停选择器中,而是在元素选择器中,没有任何修改状态。

#navlinks a {
text-decoration:none;
color: #999;
text-transform: uppercase;
display:block;
padding-top:10px;
padding-bottom:10px;
font: bold 12px/25px Arial, Helvetica;
transition:all 1s ease;
-webkit-transition-delay:all 1s ease;
-moz-transition-delay:all 1s ease;
-ms-transition-delay:all 1s ease;
-o-transition-delay:all 1s ease;
}

JSFiddle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接