Bonjour
J'ai un problème et j'ai besoin de votre aide. Je veux faire une animation en utilsant jquery permettant d'afficher un formulaire de recherche personnalisé lorsque je passe la souris dessus.
Le formulaire contient une zone de texte et un bouton. La zone de texte est en display none. le formulaire et le bouton ont presque les mêmes dimensions. Au passage de la souris, je veux élargir le formulaire et afficher la zone de texte dedans, tout en gardant le bouton à droite du formulaire. Et lors d'un mouseout, la zone de texte se cache et le formulaire se rétrécit pour revenir à l'état initial (c'est semblable à la zone de recherche de grafikart).
Voici mon code, ça donne un comportement bizarre et j'aimerai avoir votre aide svp :
Code html
<div id="recherche">
<form id="formulaire_recherche" method="post" name="f">
<input id="search-text" type="text" onfocus="if (this.value == 'Rechercher ...') {this.value = ''; }" onblur="if (this.value == ''){this.value = 'Rechercher ...'; }" value="Rechercher ...">
<input id="search-button" type="submit" value="Go" name="Submit">
</form>
</div>
Code css
#recherche
{
margin:10px auto 35px;
padding:0;
width:1024px;
text-align:center;
}
#formulaire_recherche
{
width:96px;
margin:0 auto;
padding:0;
background-color:#999;
border-radius:2em;
height:52px;
}
#search-text
{
width:380px;
background-color:#999;
margin:17px 10px;
padding:0;
color:#FFF;
border:none;
font-size:13px;
font-family:Arial;
display:none;
}
#search-button
{
background-color:#CCC;
border:none;
width:90px;
height:46px;
float:right;
border-radius:2em;
margin:3px;
padding:0;
color:#FFF;
font-family:Arial;
font-weight:700;
cursor:pointer;
}
Code JS
$("#formulaire_recherche").mouseover(function()
{
if ($(this).width() == 96)
{
$(this).animate({width:"500"});
$("#search-text").slideDown();
}
});
$("#formulaire_recherche").mouseout(function()
{
if ($(this).width() == 500)
{
$("#search-text").hide();
$(this).animate({width:"96"});
}
});
Je viens de modifier ton code, voilà un Fiddle pour que tu aies le résultat: http://jsfiddle.net/xa5671fo/4/ :)
C'est ça que tu cherches à faire ? C'est une ébauche tu verra pour peaufiner le CSS et la gestion du hover en JS (qui est assez capricieux)
Merci Cyprien G. C'est bien ce que je cherchais.
Concernant le "X" qui s'affiche dans le fiddle que tu m'a proposé permettant d'effacer le contenu de la zone de texte, je peux faire un bouton reset en display none, qui s'affiche lorsque le contenu de la zone de texte est autre que le vide. Est ce une bonne idée ?