2010-11-22 28 views
3

Je voudrais avoir cet onglet Animer lorsque planait surComment faire pour que cet onglet s'anime avec jquery?

Avant: before

En vol stationnaire: after

Comment puis-je aller à ce sujet avec jquery?

<div class="recruiterLink"> 
<a href="http://mydomain.com/recruiter/"> 
<span>Recruiting?</span> 
<br> 
Advertise a vacancy » 
</a> 
</div> 

Merci!

Répondre

3

J'aller dans cette voie:

$(".recruiterLink").hover(function(){ 
$(this).stop().animate({"top" : "-20px"}); 
}, function(){ 
$(this).stop().animate({"top": "0"}); 
}); 

Cela signifie que votre div.recruiterLink doit avoir un positionnement

.recruiterLink 
{ 
    position: relative; 
} 
+0

Cela fonctionnerait-il encore si le div.recruiterLink était en position absolue? – Anthony

+0

Oui! Cela fonctionnera si c'est relatif ou absolu. Mais alors vous devriez avoir un wrapper autour de votre menu, avec une position relative afin que le bouton ne soit pas positionné absolument sur la page, mais sur son wrapper. – Flipke

5

cela pourrait être une entrée de ce que vous recherchez:

$(document).ready(function() { 

    $('#tab-to-animate').hover(function() { 

     // this anonymous function is invoked when 
     // the mouseover event of the tab is fired 

     // you will need to adjust the second px value to 
     // fit the dimensions of your image 
     $(this).css('backgroundPosition', 'center 0px'); 

    }, function() { 

     // this anonymous function is invoked when 
     // the mouseout event of the tab is fired 

     // you will need to adjust the second px value to 
     // fit the dimensions of your image 
     $(this).css('backgroundPosition', 'center -20px'); 

    }); 

}); 

mauvaise lecture désolé la question de ce code devrait faire passer la div dans son ensemble en supposant que vous l'avez poussé vers le bas en utilisant d'abord la position: relative propriété css.

$(document).ready(function() { 

    $('.recruiterLink').hover(function() { 

     $(this).css({ 
      'position' : 'relative', 
      'top' : 0 
     }); 

    }, function() { 

     $(this).css({ 
      'position' : 'relative', 
      'top' : 20 
     }); 

    }); 

}); 
+0

La position ': relative' pour votre deuxième code est répétitif - vous pouvez le déplacer en dehors de la fonction «hover» là. –

+0

très vrai merci ... totalement ne pense pas à cela :) –

+0

Pourriez-vous s'il vous plaît préciser pourquoi la position: relative est répétitive? – Anthony

1

HTML

<div class="recruiterLink"> 
<a href="http://mydomain.com/recruiter/"> 
<span>Recruiting?</span> 
<div class="hover-item" style="display:none;">Advertise a vacancy »</div> 
</a> 
</div> 

jQuery:

$(".recruiterLink").hover(function() { 
    $(this).find(".hover-item").toggle(); 
}, 
function() { 
    $(this).find(".hover-item").toggle(); 
}); 

Vous pouvez également ajouter des effets d'animation, si vous voulez.

+0

Vous pouvez utiliser le formulaire 'hover (handlerInOut (eventObject))' car les deux rappels sont identiques. – sje397