Article du fil d'actualités de CreaWeb2B

N'hésitez pas à commenter et partager

Afficher et masquer le menu de navigation au scroll

par | 6 Avr,2017 | DIVI, Tutoriels, Webdesign

Ce tutoriel découle une fois encore d’une question posée sur un groupe facebook Divi Theme Tutorials et s’appuie sur la librairie headroom.js.

Peut être n’avez vous même pas remarqué que mon menu de navigation n’est plus fixe.

Si vous scrollez vers le bas, le menu sera masqué, et réapparaitra sitôt que vous scrollerez vers le haut, de ce fait, vous pourrez voir le menu quand vous serez au milieu de la page, juste après avoir commencé à scroller vers le haut.

Comment ajouter cette fonctionnalité à un site sous DIVI ?

  • D’abord, nous devons nous assurer que la barre de navigation est réglée pour être fixe.Allez dans les options du thème DIVI :
    Et activez la barre de navigation fixe :

  • Ensuite il faudra ajouter la bibliothèque headroom.js à notre thème enfant.
  • Puis il faudra initialiser le code pour cibler le header
  • Nous avons également besoin d’ajouter du CSS pour les animations slide – swing – flip – bounce

Pour vous faciliter la tâche, j’ai préparé un pack de fichier au sein d’une archive que vous pouvez télécharger ICI.

Une fois l’archive divi-headroom.zip ouverte, vous aurez un dossier nommé divi-headroom.

A l’intérieur de ce dossier, 2 autres dossiers : JS et CSS

Copiez ces dossiers JS et CSS à l’intérieur du dossier de votre thème enfant.

A présent, vous devez ouvrir le fichier functions.php de votre thème enfant avec votre éditeur de texte préféré et remplacer ce code :

function my_enqueue_assets() { 
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );  
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_assets' );

avec le code suivant qui va charger l’ensemble de nos fichiers de style et script (y compris le fichier style.css du thème parent DIVI) :
function my_enqueue_assets() { 
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
  wp_enqueue_style( 'headroom-style', get_stylesheet_directory_uri().'/css/headroom.css' );    
    wp_enqueue_script( 'inithead.js', get_stylesheet_directory_uri().'/js/inithead.js','','',true);
    wp_enqueue_script( 'js-headroom', get_stylesheet_directory_uri().'/js/headroom-min.js','' ,'',true );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_assets' );

C’est presque terminé et vous devriez déjà voir votre barre de navigation se masquer au scroll vers le bas et réapparaitre au scroll vers le haut. L’étape suivante consiste à personnaliser les paramètres de décalage (offset) et d’animation.

Vous pouvez tester en live les différentes possibilités en suivant ce lien : headroom playroom live demo.

Une fois que vous avez choisi l’effet et le décalage qui vous conviennent, vous devez ouvrir le fichier inithead.js qui se trouve dans le répertoire de votre thème enfant –> répertoire JS et remplacer les valeurs offset, tolerance, initial, pinned et unnpined avec celles de votre choix.

Les différentes possibilités d’animation :

Slide (par défaut)

"pinned": "slideDown",
"unpinned": "slideUp"

Swing
"pinned": "swingInX",
"unpinned": "swingOutX"

Flip
"pinned": "flipInX",
"unpinned": "flipOutX"

Bounce
"pinned": "bounceInDown",
"unpinned": "bounceOutUp"

C’est tout. N’hésitez pas si vous avez des questions ou si vous avez besoin d’aide 🙂