Menu background animé jQuery

tb-jquery-bg
Voici un petit tuto pour créer un menu avec un background animé effet style flash sur le principe des CSS Sprites mais avec un peu de javascript

La navigation est une des parties primordiales sur un site web autant q’un point esthétique qu’ergonomique.

Voici un tuto facile pour créer un menu style flash (sans ses inconvénients) avec animation du background sur le mouseover

Différents effets de transition sont disponibles dans les exemples ci-dessous.

HTML:
Une simple liste non-ordonnée de lien suffit

<ul id="a">
<li><a href="#">Accueil</a></li>
<li><a href="#">A propos</a></li>
<li><a href="#">Contact</a></li>
</ul>

Le CSS

ul {
	list-style:none;
	margin:0;
	padding:0;
}
li {
	float:left;
	width:100px;
	margin:0;
	padding:0;
	text-align:center;
}
li a {
	display:block;
	padding:5px 10px;
	height:100%;
	color:#FFF;
	text-decoration:none;
	border-right:1px solid #FFF;
}
li a {
	background:url(bg.jpg) repeat 0 0;
}
li a:hover {
	background-position:50px 0;
}

menu

Les images nécessaires à l’exemple:
bg
bg2

bg3

Le javascript:

on utilise jQuery ainsi que le plugin Background-Position.

<script type= »text/javascript » src= »jquery-1.2.6.min.js »></script>
<script type= »text/javascript » src= »jquery.bgpos.js »></script>

<script type= »text/javascript »>

$(function(){
$(‘#a a’)
.css( {backgroundPosition: « -20px 35px »} )
.mouseover(function(){
$(this).stop().animate({backgroundPosition: »(-20px 94px) »}, {duration:500})
})
.mouseout(function(){
$(this).stop().animate({backgroundPosition: »(40px 35px) »}, {duration:200, complete:function(){
$(this).css({backgroundPosition: « -20px 35px »})
}})
})
$(‘#b a’)
.css( {backgroundPosition: « 0 0″} )
.mouseover(function(){
$(this).stop().animate({backgroundPosition: »(-150px 0) »}, {duration:500})
})
.mouseout(function(){
$(this).stop().animate({backgroundPosition: »(-300px 0) »}, {duration:200, complete:function(){
$(this).css({backgroundPosition: « 0 0″})
}})
})
$(‘#c a’)
.css( {backgroundPosition: « 0 0″} )
.mouseover(function(){
$(this).stop().animate({backgroundPosition: »(0 -250px) »}, {duration:500})
})
.mouseout(function(){
$(this).stop().animate({backgroundPosition: »(0 0) »}, {duration:500})
})
$(‘#d a’)
.css( {backgroundPosition: « 0 0″} )
.mouseover(function(){
$(this).stop().animate({backgroundPosition: »(0 -250px) »}, {duration:500})
})
.mouseout(function(){
$(this).stop().animate({backgroundPosition: »(0 0) »}, {duration:500})
})
});
</script>

Un exemple sur cette page jQuery background menu animé
Démo à télécharger sur cette page (24 Ko .rar) jQuery-background.rar

D’autres exemples intéressants:

A voir aussi

  • minipipo1

    Bonjour,
    J’ai un problème, l’animation ne marche pas
    Donc, j’ai installé jquery et backpos dans le dossier /js de mon site j’ai mis le css dans le fichier .css, j’ai mis le javascript dans le head de la page.
    Maintenant, quand je vais sur la page, le bouton est déjà bleu et quand je met ma souris sur le bouton, ça ne fais rien ^^

  • Admin

    tu dois surement avoir un problème dans les appels de fichiers, a tu une démo en ligne pour voir ça?

  • minipipo1

    tu sais, c’est rien d’extra ordinaire c’est juste le bouton, il est bleu, et ça ne change toujours rien quand je met la souris, dis moi si tu veux vraiment que je mette la démo en ligne

  • Admin

    Pour voir où est le problème c’est mieux

  • minipipo1