2011-12-12 68 views
0

我有一個下拉菜單,我希望在父母被徘徊時褪色不透明。我使用的是display:none,所以我不確定這是否會影響事物...我知道它適用於CSS3轉換。動畫孩子使用JQuery降低不透明度

<ul class="headermenu"> 
       <li><a href="index.php">Index</a></li> 
       <li class="topmenu"><a href="#">Parent</a> 
        <div class="submenu"> 
         <ul class="sub"> 
          <li><a href="#">Drop down 1</a></li> 
          <li><a href="#">Drop down 2</a></li> 
          <li><a href="#">Drop down 3</a></li> 
          <li><a href="#">Drop down 4</a></li> 
         </ul> 
        </div>     
       </li> 
       <li><a href="#">Irrelevant</a></li> 
       <li><a href="#">Irrelevant</a></li> 
      </ul> 

我的父/子CSS:

.submenu { 
    display:none; 
    visibility:hidden; 
    opacity:0.0; 
} 


.topmenu:hover .submenu { 
    display:block; 
    position:absolute; 
    float:left; 
    top:25px; 
    left:-20px; 
    margin:0px; 
    padding:10px 10px; 
    width:360px; 
    height:35px; 
    background:none; 
    visibility:visible; 
    opacity:1.0; 

} 

我可憐的,可憐的失敗JQUERY:

$(document).ready(function() { 
    $('.topmenu').each(function() { 
     $('.topmenu').hover(function() { 
      $('.submenu').stop().animate({ opacity:1.0 }, 700); 
     }, 
     function() { 
      $('.submenu').stop().animate({ opacity:0.0 }, 600); 
     }); 
    }); 
}); 

奇怪的是,它以動畫的第二次我徘徊不透明度,但不在懸停,我敢肯定有更好的方法來實現這一點,我只是不知道是什麼。也許我的一些CSS規則覆蓋了我的JQuery ....

非常感謝。

回答

0

是啊,你可以這樣簡化這個:

JQuery的:

$(function(){ 
    $('.topmenu').hover(function(){ 
     $(this).children('.submenu').stop().fadeIn(700); 
    },function(){ 
     $(this).children('.submenu').stop().fadeOut(600); 
    }); 
}); 

CSS:

.topmenu { 
    position:relative; 
} 

.submenu { 
    display:none; 
    position:absolute; 
    top:10px; 
    left:20px; 
    margin:0; 
    padding:10px; 
    width:360px; 
    background-color:#F0F0F0; 
} 

演示:http://jsfiddle.net/shTyp/

+0

HAHAH,真棒。非常感謝! – RCNeil

+0

很高興幫助:) – AlienWebguy