【发布时间】:2014-05-27 22:18:51
【问题描述】:
我正在使用 jquery 代码为我的菜单设置动画。 我的菜单使用垂直 li。 当鼠标悬停在 li 上时,将添加 20 px 的填充,当鼠标移出时,填充设置为其原始值。 它工作正常。
但我有一个问题,当我将菜单设置为“固定”位置时,我的动画中有一个错误,当鼠标悬停 l)i 时(例如使用“infos pratiques”,我的菜单会颤抖。 只有当我的菜单设置为固定和绝对时才会出现问题。
任何人都可以帮助我吗?
这里有一个 jsfiddle 链接来查看它的实际效果:
这是我的html:
<div id="menu_left">
<nav id="menu_1">
<ul>
<li><a href="#">• Le lieu</a></li>
<li><a href="#">• Le Projet</a></li>
<li><a href="#">• Evenements</a></li>
<li><a href="#">• Residents</a></li>
<li><a href="#">• Ateliers</a></li>
<li><a href="#">• Infos Pratiques</a></li>
</ul>
</nav>
<nav id="menu_2">
<ul>
<li><a href="#">• Bar | Restaurant</a></li>
<li><a href="#">• Privatiser le Lieu</a></li>
<li><a href="#">• Soutenir le Projet</a></li>
<li><a href="#">• Covoiturage</a></li>
</ul>
</nav>
</div>
我的 CSS :
#menu_left {
opacity: 0.5;
font-family: 't-star_mono_roundregular';
color: #FFF;
text-decoration: none;
position: fixed;
background-color:red;
}
#menu_1{margin-top: 10%}
#menu_1 li {margin-bottom: 5px;display:block}
#menu_1 li a{
background-color:rgba(0, 0, 0, 1);
padding:4px 50px 0px 10px;
text-decoration:none;
color:white;
font-size:20px;
}
#menu_1 li a:hover{
background-color:rgba(0, 248, 0, 1);
-webkit-transition: background-color 100ms linear;
-moz-transition: background-color 100ms linear;
-o-transition: background-color 100ms linear;
-ms-transition: background-color 100ms linear;
transition: background-color 100ms linear;
color:black;
-webkit-transition: color 100ms linear;
-moz-transition: color 100ms linear;
-o-transition: color 100ms linear;
-ms-transition: color 100ms linear;
transition: color 100ms linear;}
#menu_2{margin-top: 40px}
#menu_2 li {margin-bottom: 5px;display:block}
#menu_2 li a{
background-color:rgba(0, 0, 0, 1);
padding:4px 50px 0px 10px;
text-decoration:none;
color:white;
font-size:15px;
}
#menu_2 li a:hover{background-color:rgba(0, 248, 0, 1);
-webkit-transition: background-color 100ms linear;
-moz-transition: background-color 100ms linear;
-o-transition: background-color 100ms linear;
-ms-transition: background-color 100ms linear;
transition: background-color 100ms linear;
color:black;
-webkit-transition: color 100ms linear;
-moz-transition: color 100ms linear;
-o-transition: color 100ms linear;
-ms-transition: color 100ms linear;
transition: color 100ms linear;}
还有我的 JS:
function MIn()
{
jQuery(this).animate({paddingLeft:"20px"},"fast");
}
function MOut()
{
jQuery(this).animate({paddingLeft:"10px"},"fast");
}
$('li a').hover(MIn, MOut);
非常感谢您的帮助,
【问题讨论】:
-
颤抖如何?像在粉红色的背景中移动?
-
您能否详细说明您所说的“颤抖”是什么意思,我觉得小提琴看起来不错?
-
它只发生在最长的项目上。所以,你需要给
#menu_left添加一个宽度 -
@NickR ,是的,它只发生在最长的项目上。有没有办法在不增加宽度的情况下 #menu_left
-
@vimes1984 感谢您的回复,尝试将鼠标悬停在“infos pratiques”项
标签: jquery css jquery-animate css-position fixed