为什么我的悬停效果没有动画效果?

时间:2011-08-10 17:23:49

标签: jquery animation

我100%肯定我迷失了jQuery选择器。我的悬停效果不合时宜。

这是我的结构:

 <div class="main">
  <div class="header">
    <div class="header_resize">
      <div class="menu_nav">
        <ul>
          <li class="active">
          <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/Default.aspx">Start Page</asp:HyperLink>
          <em>Animate this text</em>
          </li>
          <li>
        </ul>
      </div>
    </div>
  </div>
 </div>

这是应该做动画的jQuery:

$(".menu_nav ul li a").hover(function () {
    $(this).next("em").animate({ opacity: "show", top: "-75" }, "slow");
}, function () {
    $(this).next("em").animate({ opacity: "hide", top: "-85" }, "fast");
});

这个是css:

.menu_nav ul li em {
    background: url(images/hover.png) no-repeat;
    width: 180px;
    height: 45px;
    position: absolute;
    top: -85px;
    left: -15px;
    text-align: center;
    padding: 20px 12px 10px;
    font-style: normal;
    z-index: 2;
    display: none;
}

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

我简化了您的CSS,但基本上您需要将opacity更改为1而不是show

Link to fiddle

请注意display: none =&gt;的css更改opacity: 0

答案 1 :(得分:2)

你去吧

http://jsfiddle.net/xygHB/

css更改

.menu_nav ul li em {
    background: url(images/hover.png) no-repeat;
    width: 180px;
    height: 45px;
    top: -85px;
    left: -15px;
    text-align: center;
    padding: 20px 12px 10px;
    font-style: normal;
    z-index: 2;
    opacity:0;
}

更改js

$(".menu_nav ul li a").hover(function () {
    $(this).next("em").animate({ opacity: 1, top: "-75px" }, "slow");
}, function () {
    $(this).next("em").animate({ opacity: 0, top: "-85px" }, "fast");
});