Fenêtre modale en JS rapidement. Créer une fenêtre modale popup jQuery

Très souvent, vous pouvez trouver des fenêtres modales sur les sites Web, et elles sont toutes utilisées pour des tâches différentes. En fait, il s'agit d'un outil assez puissant qui vous permet de rendre l'interface du site plus interactive et plus pratique. Par exemple, les fenêtres modales peuvent être utilisées pour divers formulaires, comme un formulaire d'autorisation, un formulaire de commentaires, passer une commande pour un produit, et on ne sait jamais.

Dans cet article, nous examinerons un exemple de création d'une fenêtre modale simple à l'aide de JQuery et CSS. La particularité de cet exemple est qu'il n'est pas obligatoire, à l'exception de la bibliothèque JQuery elle-même.

Placez le code de la fenêtre modale sur la page :

Ouvrir la fenêtre modale

Comme vous pouvez le voir sur le balisage, le bloc de la fenêtre modale elle-même est un div avec l'attribut id= modal_form qui contient un élément span avec id= modal_close. Cet élément servira de bouton pour fermer la fenêtre modale, de plus, en dessous du bloc il y a un bloc div avec l'attribut id= recouvrir, qui sert également à assombrir l’arrière-plan. La fenêtre modale s'ouvrira par lien, avec la classe modal.

CSS pour fenêtre modale

#modal_form (largeur : 300 px ; hauteur : 300 px ; rayon de bordure : 5 px ; bordure : 3 px #000 solide ; arrière-plan : #fff ; position : fixe ; haut : 45 % ; gauche : 50 % ; marge supérieure : -150 px ; margin-left : -150px ; affichage : aucun ; opacité : 0 ; remplissage : 20px 10px ; ) #modal_form #modal_close (largeur : 21px ; position : absolue ; haut : 10px ; 10px ; curseur : pointeur ; affichage : bloc ; ) # superposition ( z-index:3; position:fixed; background-color:#000; opacity:0.8; -moz-opacity:0.8; filter:alpha(opacity=80) ; width:100%; top:0; curseur: aucun)

Pour modal_form nous définissons une largeur et une hauteur fixes, puis centrons la position au centre de l'écran. Pour l'arrière-plan de la fenêtre modale ( recouvrir) nous définissons la taille pour qu'elle s'adapte à la largeur de l'écran, la remplissons de transparence et la masquons également par défaut. Moment privilégié avec indice z, le modal doit avoir le plus grand de tous les éléments de la page, et la couverture doit avoir le plus grand de tous les éléments, à l'exception du modal lui-même.

Passons maintenant à la chose la plus élémentaire, c'est le code javascript. Deux événements principaux seront utilisés pour la fenêtre modale : son ouverture - clic sur un élément avec la classe modal, dans notre cas il s'agit d'un lien, et fermer la fenêtre modale est un clic sur la couverture ( recouvrir), ou cliquez sur le bouton fermer, dans notre cas il s'agit d'un élément span avec id= modal_close.

$(document).ready(function() ( $(".modal").click(function(event)( event.preventDefault(); $("#overlay").fadeIn(400, // animer l'affichage de la fonction de couverture ()( // affiche ensuite la fenêtre modale $("#modal_form") .css("display", "block") .animate((opacity: 1, top: "50%"), 200); )); )); // fermeture de la fenêtre modale $("#modal_close, #overlay").click(function())( $("#modal_form") .animate((opacity: 0, top: "45% "), 200, // réduire la fonction de transparence())( // après l'animation $(this).css("display", "none"); // masquer la fenêtre $("#overlay").fadeOut (400); // masquer l'arrière-plan ) ));

En utilisant animer, nous changeons la position verticale haut, ainsi que la transparence opacité, et avec cela nous obtenons un effet intéressant. Un effet similaire est utilisé à la fois lors de l'ouverture d'une fenêtre et lors de sa fermeture. La différence est que l'ordre dans lequel les propriétés sont appliquées aux blocs change, visualisant ainsi l'ouverture et la fermeture de la fenêtre.

Les fenêtres modales peuvent être considérées comme un excellent moyen d'acquérir de l'espace d'écran supplémentaire, d'attirer l'attention de l'utilisateur du site, de lui proposer des choix ou de l'alerter des changements. Ou comme un sale hack qui permet d'imposer à un visiteur des informations auxquelles il n'aurait autrement pas prêté attention.

Ce sont les points extrêmes de la règle qui mesure notre relation avec l'utilisateur du site. Selon les habitudes, les préférences personnelles et la façon dont vous surfez sur le Web, les modaux peuvent être une bénédiction ou une malédiction pour l'utilisateur.

Les fenêtres modales obligent l'utilisateur à déplacer rapidement son attention d'une partie du site à une autre, dont le contenu ne correspond parfois pas à ce que l'utilisateur vient de visualiser.

Si une fenêtre modale apparaît automatiquement ou n'est tout simplement pas explicitement initiée par l'utilisateur, cela peut être déroutant et ennuyeux. Cela permet d'accuser les fenêtres modales d'être intrusives et d'envahir l'espace privé de l'utilisateur.

Il semble que les fenêtres modales ne puissent pas interférer sérieusement avec l'expérience de l'utilisateur tant qu'elles contiennent des contrôles simples et clairement visibles. Vous pouvez toujours cliquer sur la « croix » dans le coin de l’écran, faire défiler le texte, ou enfin remplir ce formulaire d’inscription.

Mais imaginez que vous utilisez un navigateur à l'aide d'un clavier de kiosque, d'un afficheur braille ou d'un périphérique de saisie vocale, et que la fenêtre modale qui apparaît ne déplace pas le focus de saisie vers son bouton ou son champ, mais le laisse quelque part en dessous, dans le reste de le contenu du site. Cela rendra le site inutilisable sur notre appareil.

Et de tels cas se produisent plus souvent qu’on pourrait s’y attendre avec le développement moderne des pratiques d’utilisabilité et des outils de test.

La sémantique du code contribue à l'accessibilité du site

La facilité d'utilisation et l'accessibilité d'un site sur n'importe quel appareil en souffrent souvent lors de l'utilisation de fenêtres modales. Quel que soit le but de l'utilisation d'une fenêtre modale, sa gestion doit être simple et polyvalente.

Pour y parvenir, nous devons prêter une attention particulière à la sémantique du balisage. Cette exigence semble simple, mais malheureusement, elle n’est souvent pas remplie. Imaginez le code suivant pour une fenêtre avec un bouton Fermer :

Élément

n’a pas de signification sémantique spécifique dans ce contexte. Bien entendu, il peut être reconnu comme un bouton pour fermer une fenêtre grâce à des signes visuels : le symbole « X » et le changement de forme du curseur. Mais que se passe-t-il si une personne malvoyante ou aveugle travaille sur le chantier ?

Pour pouvoir déplacer le focus d'entrée vers ceci

, nous devons utiliser l'attribut tabindex. De plus, l'état décrit par le pseudo-sélecteur :focus l'identifiera comme l'élément actif. Cela rendra possible la gestion du site à l’aide d’appareils alternatifs, mais pas très facile.

Disons que de nombreux utilisateurs de lecteurs d'écran savent déjà que la lettre « X » signifie « Fermer ». Mais si nous remplaçons cette lettre par un signe de multiplication (code esperluette ×) ou une croix (❌) par souci d'effet visuel, le contenu de notre bloc ne sera pas lu.

La meilleure solution dans cette situation serait d'utiliser la balise

Remplacement

sur
Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :