Comment créer un effet de navigation inspiré de la page d'accueil Mootools à l'aide de jQuery

Comme vous le savez, il existe de nombreuses bibliothèques javascript concurrentes de nos jours. Bien que je préfère jQuery, j'ai toujours aimé le fonctionnement du menu sur MooTools. Donc, dans ce tutoriel, nous allons recréer le même effet… mais nous le ferons dans jQuery!


Démo et code source



Étape 1

Commençons par écrire le code HTML nécessaire pour créer une navigation verticale simple. Comme vous l’auriez peut-être deviné, nous utiliserons une liste non ordonnée.

    avec le nom de l'ID "navigation coulissante". Aussi, nous allons ajouter des liens et donner à chaque élément de la liste
  • le nom de la classe "élément coulissant".

    Je vais aussi ajouter un élément de titre. C’est une chose utile car beaucoup de blogs WordPress, par exemple, ont des éléments de titre dans leur barre de navigation latérale (par exemple, "Archives"). Cela ressemblerait à quelque chose comme ça:

     
    • Titre de navigation

    • Lien 1
    • Lien 2
    • Lien 3
    • Lien 4
    • Lien 5

    Étape 2

    Maintenant, créons un document HTML où nous pourrons mettre le travail que nous venons de faire. Créez un nouveau fichier HTML et appelez-le demo.html. Puis ouvrez ce fichier avec votre éditeur de texte préféré et insérez le code suivant:

        Effet de navigation à l'aide de jQuery      
    • Titre de navigation

    • Lien 1
    • Lien 2
    • Lien 3
    • Lien 4
    • Lien 5

    Il y a quelques choses à noter ici:

    1. Le! DOCTYPE de notre fichier demo.html est défini sur XHTML 1.0 Strict. Ce n'est pas nécessaire pour que l'effet fonctionne, mais j'essaie de prendre l'habitude de l'utiliser autant que je peux..
    2. Vous avez peut-être remarqué que le tag fait référence à un fichier appelé style.css. Cependant, aucun fichier de ce type n'existe. Pas de soucis cependant, c'est la prochaine étape.
    3. Enfin, j'ai encapsulé mon bloc de navigation dans un
      . Nous en profiterons plus tard pour positionner le bloc sur la page.

    Étape 3

    Maintenant que notre fichier HTML est étiqueté et fonctionne, ajoutons quelques styles. Rappelez-vous que notre document HTML pointe vers un fichier CSS appelé styles.css. Commençons donc par créer un fichier appelé styles.css et en l’enregistrant dans le même répertoire que notre document HTML. Comme nous l'avons fait à l'étape précédente, ouvrez ce fichier avec votre éditeur de texte préféré et insérez le code suivant:

     corps marge: 0; rembourrage: 0; arrière-plan: # 1d1d1d; font-family: "Lucida Grande", Verdana, sans-serif; taille de police: 100%;  ul # slide-navigation list-style: none; taille de police: .75em; marge: 30px 0;  ul # glissement-navigation li.sliding-élément h3, ul # glissement-navigation li.sliding-élément a display: block; largeur: 150px; rembourrage: 5px 15px; marge: 0; marge inférieure: 5px;  ul # slide-navigation li.sliding-element h3 color: #fff; arrière-plan: # 333; bordure: 1px solide # 1a1a1a; poids de police: normal;  ul # slide-navigation li.sliding-element a color: # 999; arrière-plan: # 222; bordure: 1px solide # 1a1a1a; texte-décoration: aucun;  ul # slide-navigation li.sliding-element a: hover color: # ffff66; 

    Étape 4

    À ce stade, votre page demo.html devrait ressembler à ceci:

    Alors, il est enfin temps de commencer à utiliser jQuery. Mais avant de pouvoir commencer, nous devons faire quelques choses:

    1. Téléchargez la dernière version de jQuery.
    2. Créez un nouveau fichier appelé slide_effect.js et enregistrez-le dans le même répertoire que celui de vos fichiers HTML et CSS..
    3. Enfin, insérez les deux fichiers précédents dans votre document HTML. .

    Ceci est ce que votre fichier HTML devrait ressembler à maintenant:

      Effet de navigation à l'aide de jQuery    

    Étape 5

    Maintenant, nous allons créer la fonction qui fera tout le travail "lourd" pour que l’effet glissant fonctionne. Cette fonction prendra cinq paramètres (navigation_id, pad_out, pad_in, time et multiplier) et les utilisera comme suit:

    1. navigation_id: C'est le nom de l'ID de la navigation, qui contient les éléments sur lesquels l'effet sera appliqué.
    2. pad_out: Il s’agit du nombre de pixels à compléter à gauche lorsque l’un des liens de la navigation est survolé.
    3. pad_in: Ceci est le nombre de pixels à remplir à gauche lorsqu'un des liens de la navigation n'est plus survolé.
    4. temps: Ceci représente le temps (en millisecondes) nécessaire pour que l’un des éléments de lien glisse et revienne pour se placer lorsque la page est chargée..
    5. multiplicateur: Le rôle du multiplicateur est d’augmenter ou de diminuer le montant nécessaire pour que l’élément de lien suivant glisse à l’écran. En d'autres termes, si le multiplicateur est 1, tous les éléments de lien glisseront à l'écran à intervalles égaux. Cependant, s'il est inférieur à 0, les éléments de lien suivants entreront plus rapidement et s'il est supérieur à 1, l'inverse se produira..

    Alors, ouvrez votre fichier slide_effect.js et insérez le code suivant:

     function slide (navigation_id, pad_out, pad_in, time, multiplier) // crée les chemins cibles var_liste_liste = ID_de_la_chaude + "li.sliding-element"; var link_elements = list_elements + "a"; // lance le minuteur utilisé pour l'animation glissante var timer = 0; // crée l'animation de la diapositive pour tous les éléments de la liste $ (liste_éléments) .each (fonction (i) // marge de gauche = - ([largeur de l'élément] + [remplissage vertical total de l'élément]) $ (this) .css ( "margin-left", "- 180px"); // met à jour le temporisateur = (minuteur * multiplicateur + temps); $ (this) .animate (marginLeft: "0", timer); $ (this) .animate (marginLeft: "15px", timer); $ (this) .animate (marginLeft: "0", timer);); // crée l'effet hover-slide pour tous les éléments de lien $ (link_elements) .each (function (i) $ (this) .hover (function () $ (this) .animate (paddingLeft: pad_out, 150) ;, function () $ (this) .animate (paddingLeft: pad_in, 150););); 

    Étape 6

    Pour déclencher le script, il suffit d’appeler la fonction une fois la page chargée. Il y a deux endroits pour mettre l'extrait de code suivant. Il peut être écrit dans le fichier glissement_effect.js (j'ai choisi cette option pour ce tutoriel) ou appelé dans le code HTML à l'aide d'un

    Effet de navigation à l'aide de jQuery

    Par Bedrich Rios

    • Titre de navigation

    • Lien 1
    • Lien 2
    • Lien 3
    • Lien 4
    • Lien 5

    Notez que j'ai ajouté l'image à l'intérieur de l'élément "navigation-block" et lui donnez un identifiant appelé "hide". J'ai également ajouté un élément d'en-tête et un sous-titre. Maintenant, nous ajoutons un peu de CSS supplémentaire à notre fichier styles.css comme suit:

     h2 color: # 999; marge inférieure: 0; marge gauche: 13px; fond: url (navigation.jpg) no-repeat; hauteur: 40px;  h2 span display: none;  p color: # ffff66; marge supérieure: .5em; taille de police: .75em; padding-left: 15px;  # navigation-block position: relative; en haut: 200px; à gauche: 200px;  #hide position: absolute; en haut: 30px; à gauche: -190px; 

    Alors d'abord dans le

    élément, nous avons défini le texte HTML pour qu'il disparaisse à l'aide de "display: none" et une image d'arrière-plan d'un texte plus joli que j'avais préparé précédemment.

    Notez également que l'élément "navigation-block" a maintenant une position relative, de sorte que nous pouvons déplacer l'image "cacher" vers la gauche. Cela fera apparaître les onglets en dessous.

    Enfin, pour donner un peu de finition à nos onglets, j'ai ajouté une image d'arrière-plan subtile qui ressemble à un ombrage semblable à celui-ci:

     ul # glissement-navigation li.sliding-element h3 color: #fff; background: # 333 url (heading_bg.jpg) repeat-y; poids de police: normal; 

    Fini

    Et nous avons fini!

    Voir l'effet final

    Télécharger le HTML / Images / JS