http://codepen.io/DerekDev/pen/PwBadq 如果将鼠标悬停在悬停效果上的菜单项上,您会注意到悬停动画在结束后返回其原始状态(文本返回到原来的状态)。我希望文本保持原样,直到你从菜单中盘旋为止。
CSS:
.menu a {
color:#505050;
position:relative;
text-decoration:none;
margin-left:5px;
margin-right:5px;
transition:1s;
padding-left:20px;
padding-right:20px;
padding-top:26px;
padding-bottom:25px;
transition:1s;
}
@-webkit-keyframes menu {
from {top:0;}
to {top:10px;}
}
.menu a:hover {
background-color:#e03333;
color:#ffffff;
-webkit-animation-name:menu;
-webkit-animation-duration:300ms;
-webkit-animation-iteration-count:1;
}
答案 0 :(得分:1)
您可能必须实现jQuery解决方案。见下文......
$(document).ready(function(){
$('.menu').on('mouseenter',function(){
$(this).animate({'backgroundColor':'#e03333',
'color':'#ffffff'},200,'linear');
});
});
答案 1 :(得分:1)
你可以使用2个动画,一个持续3秒,另一个9999秒。它不会永远持续下去,但差不多......
.menu a {
color:#505050;
position:relative;
text-decoration:none;
margin-left:5px;
margin-right:5px;
transition:1s;
padding-left:20px;
padding-right:20px;
padding-top:26px;
padding-bottom:25px;
transition:1s;
}
@-webkit-keyframes menu {
0% {top:0;}
10%, 100% {top:10px;}
}
@-webkit-keyframes menu2 {
0% {top:10px;}
100% {top:10px;}
}
.menu a:hover {
background-color:#e03333;
color:#ffffff;
-webkit-animation-name:menu, menu2;
-webkit-animation-duration:3s, 9999s;
-webkit-animation-delay: 0s, 1s;
-webkit-animation-iteration-count:1;
}
<div class=menu><a>test</a></div>
答案 2 :(得分:0)
使用animation-fill-mode:forwards
-webkit-animation-fill-mode: forwards; /* Chrome, Safari, Opera */
animation-fill-mode: forwards;
然而使用:hover
并不起作用,因为一旦鼠标退出,它就会返回到之前没有包含的状态:hover css。因此,当鼠标悬停时使用javascript添加类名称会更好,因此当鼠标移出时,它仍然会将鼠标保持在状态之上。
答案 3 :(得分:0)
您可以在两种状态下设置不同的转换时间:
a {
transition:1.5s;
}
a:hover {
background:tomato;
transition:0.3s
}
&#13;
<nav><a href="#nowhere">no where</a> <a href="#nowhere">nowhere</a> <a href="#nowhere">now here</a></nav>
&#13;