1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| <!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="Author" content="Daniel Hagnoul">
<title>Forum jQuery</title>
<link href='http://fonts.googleapis.com/css?family=Redressed&subset=latin&v2' rel='stylesheet' type='text/css'>
<style>
/* Base */
div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {margin:0; padding:0; }
body {background-color:rgba(210, 214, 98, 0.5); color:#000000; font-family:sans-serif; font-size:medium; font-style:normal; font-weight:normal; line-height:normal; letter-spacing:normal; }
h1,h2,h3,h4,h5 {font-family:'Redressed', cursive; padding:6px; }
p, div, td {word-wrap:break-word; }
pre, code {white-space:pre-wrap; word-wrap:break-word; }
img, input, textarea, select {max-width:100%; }
img {border:none; }
h1 {font-size:2em; text-shadow: 4px 4px 4px #bbbbbb; text-align:center; }
p {padding:6px; }
.conteneur {width:95%; min-width:800px; min-height:300px; margin:12px auto; background-color:#ffffff; color:#000000; border:1px solid #666666; }
/* curseur */
ul,ol,dl {list-style:none; padding-top:3px; padding-bottom:3px; }
li {padding:3px; }
.menuBarre {width:800px; margin:0 auto; text-align:center; border:0; }
.menuCurseur {position:relative; display:block; padding:3px; border:0; }
.menuBarre ul > li {display:inline-block; width: 80px; text-align:center; cursor:pointer;background-color:rgba(86, 211, 114, 0.35); border:1px solid green; }
</style>
</head>
<body>
<h1>Forum jQuery</h1>
<section class="conteneur">
<div class="menuBarre">
<img class="menuCurseur" src="http://danielhagnoul.developpez.com/images/cursorSPF.gif" />
<ul>
<li>File</li>
<li>Edit</li>
<li class="menuActif">Code</li>
<li>Navigation</li>
<li>View</li>
<li>Projet</li>
<li>Tools</li>
<li>Help</li>
</ul>
</div>
</section>
<footer itemscope itemtype="http://data-vocabulary.org/Person">
<time datetime="2011-07-10T01:15:00.000+02:00" pubdate>2011-07-10</time> <span itemprop="name">Daniel Hagnoul</span> <a href="http://www.developpez.net/forums/u285162/danielhagnoul/" itemprop="url">@danielhagnoul</a>
</footer>
<script charset="utf-8" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<script>
$(function(){
/* curseur */
var objMenuBarre = $(".menuBarre"),
objCurseur = $(".menuCurseur"),
objsLi = objMenuBarre.children("ul").children("li"),
curseurHalfWidth = objCurseur.outerWidth()/2,
startLeft = objCurseur.position().left,
actifLeft = function(){
// calcule la nouvelle position relative du curseur par rapport à l'élément actif
return parseInt($(".menuActif").position().left + $(".menuActif").innerWidth()/2 - startLeft - curseurHalfWidth, 10);
},
animLeft = function(item){
// calcule la nouvelle position relative du curseur par rapport à l'élément survolé
return parseInt($(item).position().left + $(item).innerWidth()/2 - startLeft - curseurHalfWidth, 10);
},
initLeft = function(){
// initialisation de la position du curseur
objCurseur.css("left", actifLeft() + "px");
};
// animation du curseur pour rejoindre le li survolé
objsLi.mouseenter(function(){
objCurseur.stop(true, false).animate({left: animLeft(this) + 'px'});
});
// retour du cursor au dessus du li ayant la classe menuActif
objMenuBarre.mouseleave(function(){
objCurseur.stop(true, false).animate({left: actifLeft() + 'px'});
});
// modification de l'attribution de la classe menuActif
objsLi.click(function(){
objsLi.removeClass('menuActif');
$(this).addClass('menuActif');
initLeft();
});
initLeft();
});
</script>
</body>
</html> |