【问题标题】:animate borders动画边框
【发布时间】:2012-10-03 10:39:51
【问题描述】:

我有这个 jquery 代码。

//this is the main javascript

$(document).ready(function(){

    $('nav.menu a').hover(
        function () {
            $('nav.menu').find(".current_item").removeClass("current_item");
            $(this).addClass("current_item");

        }, 
        function () {
            $(this).removeClass("current_item");
            $('nav.menu').find(".damenu").addClass("current_item")
        }
);

});

还有这个html结构

<nav class="menu">
    <a href="home.html" class="current_item damenu">Home</a>
    <a href="gallery.html">Gallery</a>
    <a href="home.html">Portfolio</a>
    <a href="home.html">About</a>
    <a href="home.html">Contact</a>
</nav>

还有这个css

.menu
{
background: 1px solid #00ffff;
width: 100%;
padding: 0px 0px 0px 10px;
}
.menu a
{
padding: 8px;
color: #0099ff;
font: bold 20px Archivo Narrow, Arial Rounded MT, Tahoma, Calibri, Asap, Arial,     Verdana, sans-serif;
text-decoration: none;
float: left;
margin-right: 8px;
text-shadow: 2px 1px 1px #ffffff;
border-top: 3px solid transparent;
border-bottom: 3px solid transparent;
}
.current_item /*, .menu a:hover*/
{
color: #C5F700 !important;
border-top: 3px solid #C5F700 !important;
border-bottom: 3px solid #C5F700 !important;
}

如您所见,例程是这样的,当前菜单有一个类,每当用户将鼠标悬停在其中一个菜单上时,当前菜单的类就会被删除,并且会在当前菜单中添加一个类“current_item”悬停菜单和 mouseout 事件中,“current_item”类从当前悬停元素中删除,“current_item”类被添加回当前菜单,该菜单也有“damenu”类,你可以看到“current_item”类是添加上下边框,效果很好,但我想在鼠标悬停或鼠标悬停时在边框或“current_item”类中添加一些动画。

所以准确地说,我想在 mouseover 或 mouseout 事件中为边框或“current_item”类设置动画,而且,无论如何我可以将导航设置为中心吗?

我是开放的,想法,推荐和建议。希望有人能帮忙,谢谢。

【问题讨论】:

    标签: javascript jquery html css


    【解决方案1】:

    你不能把add the following 改为.current_item 吗?

    -webkit-transition: .5s border-color, color ease;
    -moz-transition: .5s border-color, color ease;
    -ms-transition: .5s border-color, color ease;
    -o-transition: .5s border-color, color ease;
    transition: .5s border-color, color, ease;
    

    【讨论】:

      【解决方案2】:

      您只能通过 css 为边框设置动画

      .menu
      {
      background: 1px solid #00ffff;
      width: 100%;
      padding: 0px 0px 0px 10px;
      }
      .menu a
      {
      padding: 8px;
      color: #0099ff;
      font: bold 20px Archivo Narrow, Arial Rounded MT, Tahoma, Calibri, Asap, Arial,     Verdana, sans-serif;
      text-decoration: none;
      float: left;
      margin-right: 8px;
      text-shadow: 2px 1px 1px #ffffff;
      border-top: 3px solid transparent;
      border-bottom: 3px solid transparent;
      -webkit-transition: 1s all ease;
      -moz-transition: 1s all ease;
      -ms-transition: 1s all ease;
      -o-transition: 1s all ease;
      transition: 1s all ease;
      }
      .menu a.current_item, .menu a:hover
      {
      color: #C5F700 !important;
      border-top: 3px solid #C5F700 ;
      border-bottom: 3px solid #C5F700 ;
      }
      

      【讨论】:

        【解决方案3】:

        获取JQuery彩色动画插件,然后:

         $('#currentitem').hover(function(){
                (this).animate({borderColor:'#fff'});
            }, function(){
               (this).animate({borderColor:'#000'});
            });
        

        【讨论】:

        • 我建议获取 JQuery UI 库,其中将包含彩色动画插件。
        • 在哪里可以获得 jquery 颜色动画插件?
        • 我在哪里可以获得那个 jquery ui 库?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-19
        • 2013-08-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-07
        相关资源
        最近更新 更多