如何使用CSS3动画为下拉菜单设置动画?

spa*_*kle 14 css css3 zurb-foundation animate.css

我想在我的下拉列表中添加一个CSS3效果.(就像Instagram.com中关于"我的个人资料"的那个).

我正在使用Animate.css来获得CSS3效果.

我试过这个,但它不起作用.

在此输入图像描述

HTML

<a href="#" data-dropdown="dropdownalerts" data-options="is_hover:true"><%=fa_icon "bell"%></a>

<ul id="dropdownalerts" class="f-dropdown text-left animated bounceInDown" data-dropdown-content>
   <li><%=link_to "Facebook", "#"%></li>
   <li><%=link_to "Email", "#" %></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

JS

$(document).ready(function(){
    $('a').hover(function(){
        $("ul").addClass('animated bounceInDown');
    });
});
Run Code Online (Sandbox Code Playgroud)

您可以在Zapping.io上找到实时版本

Jos*_*ier 18

我让它在一个例子中工作.我使用了您提供的HTML,然后下载了bounceInDown动画并将其用于下面示例中的CSS.

这里的jsFiddle示例 - 悬停方法

jQuery的

$(document).ready(function(){
  $('a').hover(function() {
    $("ul").addClass('animated bounceInDown');
  },function(){
    $("ul").removeClass('animated bounceInDown');
  });
});
Run Code Online (Sandbox Code Playgroud)

如果您想在悬停时添加延迟,请使用以下内容:

jsFiddle示例 - 具有延迟的悬停方法.

$(document).ready(function(){
  $('a').hover(function() {
    $("ul").addClass('animated bounceInDown');
  },function(){setTimeout(function(){
    $("ul").removeClass('animated bounceInDown');
  }, 750);});
});
Run Code Online (Sandbox Code Playgroud)

这些示例假设您希望在悬停时触发动画.如果您希望在点击时触发它,请使用以下内容:

jsFiddle示例单击方法 - 请查看下面的替代非JS方法.

$(document).ready(function(){
  $('a').click(function() {
    $("ul").toggleClass('animated bounceInDown');
  });
});
Run Code Online (Sandbox Code Playgroud)

替代方法 - 没有JS/jQuery

如果您不想使用JavaScript/jQuery,可以使用CSS中的复选框hack.

这基本上在两者之间切换:checked,从而激活动画.

jsFiddle示例 - 它适用于所有当前浏览器.

HTML

<label id="click" for="dropdown">Click here</label>
<input style="display:none" type="checkbox" id="dropdown">
<ul id="dropdownalerts" class="f-dropdown text-left" data-dropdown-content>
    <li>Facebook</li>
    <li>Email</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

CSS - (只是其中的一部分)请参阅上面的示例以获取完整的CSS.

input[type=checkbox]:checked ~ #dropdownalerts {
    display:inline-block;
    -webkit-animation: bounceInDown 1s both;
    -moz-animation: bounceInDown 1s both;
    -o-animation: bounceInDown 1s both;
    animation: bounceInDown 1s both;
}
Run Code Online (Sandbox Code Playgroud)