Détecter le "swap" pour fermer un menu

Pensez à vos utilisateurs lorsqu'ils visitent votre site internet sur leurs appareils mobiles : leur permettre de fermer votre menu en utilisant le "swap" leur facilitera grandement leur expérience sur votre site, vous aurez ainsi une meilleure expérience utilisateur ce qui augmente vos chances de fidéliser. Découvrons ensemble comment le faire dans cet article !
•
Mis à jour le 14 août 2026
•
2 min de lecture
Believemy logo
Détecter le "swap" pour fermer un menu

Pensez à vos utilisateurs lorsqu'ils visitent votre site internet sur leurs appareils mobiles : leur permettre de fermer votre menu en utilisant le "swap" leur facilitera grandement leur expérience sur votre site, vous aurez ainsi une meilleure expérience utilisateur ce qui augmente vos chances de fidéliser. Découvrons ensemble comment le faire dans cet article !

Image

1ère étape

Débutons par le code HTML.

HTML
<div class="hamburger">
  <span></span>
  <span></span>
  <span></span>
</div>

<div class="sidebar"></div>

Les balises de la classe hamburger vont nous permettre de styliser les traits qui font parti de l’icône.

 

2ème étape

Occupons-nous de la classe hamburger.

CSS
.hamburger {
  position: absolute;
  top: 50px;
  left: 35px;
  cursor: pointer;
}

.hamburger span {
  display: block;
  width: 30px;
  height: 0.3rem;
  margin: 0.3rem 0;
  background-color: #e91e63;
  border-radius: 5px;
}

 

3ème étape

Au tour de notre menu !

CSS
.sidebar {
  position: absolute;
  top: 0;
  left: 0;
  width: 210px;
  height: 100vh;
  background-color: #e91e63;
  transform: translateX(-210px);
  transition: all .2s;
}

.sidebar.open {
  transform: translateX(0);
}

 

4ème étape

Détectons le clic sur notre icône grâce à JavaScript.

JAVASCRIPT
const icon = document.querySelector('.hamburger');
const sidebar = document.querySelector('.sidebar');

let touchStart, touchEnd;

icon.addEventListener('click', () => {
  sidebar.classList.add('open');
});

 

5ème étape

Il ne reste qu'à récupérer le mouvement du touché de notre utilisateur.

JAVASCRIPT
icon.addEventListener('click', () => {
  sidebar.classList.add('open');
});

sidebar.addEventListener('touchstart', e => {
  touchStart = e.targetTouches[0].clientX;
});

Grâce aux événements touchstart et touchmove, nous mettons dans des variables la distance réalisée par le doigt de l’utilisateur.

 

6ème étape

Calculons pour terminer la distance du swap.

JAVASCRIPT
sidebar.addEventListener('touchmove', e => {
  touchEnd = e.targetTouches[0].clientX;
});

sidebar.addEventListener('touchend', e => {
  if (touchStart - touchEnd > 100) {
    sidebar.classList.remove('open');
  }
});

Si notre utilisateur a “swappé” plus de 100px de distance, nous retirons la classe open de notre menu pour le fermer.

Catégorie : Développeurs

Partager cet article

Tu veux nous aider ? Fais un lien vers cet article sur tes réseaux ou encore mieux : sur ton site, dans un article ou dans ta newsletter.

Believemy logo
Commentaires (0)

Vous devez être connecté pour commenter cet article : se connecter ou s'inscrire.

À lire ensuite

Créer un menu plein écran au clic

Avoir un menu, c'est devenu un grand classique indispensable. Mais avoir un menu qui prend tout l'écran, c'est idéal lorsqu'on veut que son site soit totalement responsive (et donc adapté aux appareils mobiles par exemple). Cet article va vous aider à mettre en place un menu plein écran qui se déclenche au clic !

12 juin 2020

Créer un menu qui s'étend sur toute la page avec CSS

Il nous arrive de temps en temps de devoir demander à notre visiteur sur quelle page il veut aller, en lui affichant les principales sections de notre site internet. Ce menu n'est pas souvent très agréable à utiliser, découvrons ensemble dans cet article comment faire pour le rendre beaucoup plus moderne avec de belles animations qui donneront à vos passants l'envie de visiter votre site !

19 novembre 2020

Faire un message de notification animé

Que ce soit pour prévenir rapidement vos utilisateurs qu'une fonctionnalité de votre site n'est pas encore disponible ou pour les prévenir qu'une action a été réalisée avec succès, les notifications sont le moyen le plus simple et moderne à mettre en place. Découvrons dans cet article comment faire !

25 novembre 2020

Détecter la préférence (SOMBRE | CLAIR) de l’ordinateur d'un utilisateur

Proposer une version sombre de son site internet devient petit à petit une norme que les sites se doivent de s'imposer pour le bien de leurs utilisateurs. Voyons dans cet article comment créer un thème sombre et comment faire pour détecter les préférences de notre visiteur.

24 novembre 2020

Faire des boutons encerclés au survol

Pour un menu ou pour proposer à vos lecteurs de partager votre site internet, des boutons de partage sont des éléments à impérativement ajouter à votre site internet. Découvrons comment les rendre plus moderne grâce à un effet « néon » qui entourera le l’icône sélectionnée par votre utilisateur.

20 décembre 2020

Faire une flèche qui s'agrandit au survol

Que ce soit pour donner envie à vos utilisateurs de voir votre projet, de lire votre article ou d'accéder à une page de votre site internet, présenter votre lien avec une flèche vous permettra d'attirer plus facilement l'oeil de vos visiteurs ! Découvrons dans cet article comment animer cette flèche pour sublimer l'expérience de vos lecteurs.

18 novembre 2020

Créer une fenêtre modale sans utiliser JavaScript

Vous avez souvent voulu créer une fenêtre modale (une fenêtre qui s'ouvre à l'intérieur de votre site internet) mais vous ne connaissez par JavaScript ? Découvrons ensemble comment réussir à y parvenir !

8 février 2021

Créer un effet de rotation du texte

Pour rendre votre site plus attractif, vous pouvait ajouter cet effet sympa, qui permettra d'afficher plusieurs mots qui vont se succéder avec un effet de suppression et de réécriture en boucle. Cet effet pourra être placé à la fin d'une phrase comme dans un texte.

19 novembre 2020

Devenez le solopreneur que vous rêvez d'être.

Premier projet, reconversion, lancement de business : accédez à nos formations, pratiquez sur des cas concrets et avancez avec un accompagnement clair.