Galerie✨ Premium

Magnifying Glass

Une loupe ronde suit la souris, le doigt ou les flèches du clavier et montre votre propre image agrandie deux fois, fichier haute définition compris.

JSBackground

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Galerie comprend 44 effets, dont 6 gratuits. Découvrir la catégorie →

3 exemples d'usage

Boutique d'un atelier de gravure — l'eau-forte se lit trait par trait — Magnifying Glass exemple 1

① Boutique d'un atelier de gravure — l'eau-forte se lit trait par trait

QuandSur la boutique de l'Atelier Vernadoux, le retirage d'une eau-forte de temple antique (épreuve 12/30) occupe la colonne de gauche ; à droite, le prix et les boutons « Au panier » et « Encadrer ». L'amateur promène la loupe sur les colonnes cannelées et la légende gravée.
PourquoiAcheter une estampe en ligne, c'est juger la finesse des tailles sans l'avoir en main : la loupe donne ce regard de près sans quitter la fiche, et la gravure reste entière à côté.
Réglagesdata-zoom="2.5", --mgl-width: 300px, --mgl-ratio: 4/3, --mgl-ring: 2px solid #2a241d (encre de la gravure), cadre bordé de 6 px de blanc comme un passe-partout ; légende .mgl-label retirée.
Carte des sentiers d'un parc naturel — lire les petits noms — Magnifying Glass exemple 2

② Carte des sentiers d'un parc naturel — lire les petits noms

QuandLa carte topographique du massif de l'Orvellane remplit toute la largeur sous l'en-tête et le bouton « Télécharger la carte (PDF) ». Le randonneur passe la loupe sur un refuge ou une variante pour lire son nom et l'altitude des sommets.
PourquoiUne carte lisible à l'échelle d'une page web serait illisible en entier ; la loupe garde la vue d'ensemble et donne le détail sur demande, à la souris comme au doigt sur une tablette.
Réglages--mgl-width: 100%, --mgl-ratio: 540/316, --mgl-radius: 0, loupe agrandie --mgl-size: 130px, data-zoom="2.5" ; légende posée en surimpression avec pointer-events: none.
Bail scanné dans un espace locataire — loupe carrée au clavier — Magnifying Glass exemple 3

③ Bail scanné dans un espace locataire — loupe carrée au clavier

QuandDans l'espace Domicelle, l'aperçu de la page 2 du bail tient dans une petite vignette à côté de la liste des documents et du bouton « Signer l'avenant ». Le locataire la parcourt aux flèches pour relire l'article 7 sur le préavis.
PourquoiUne vignette suffit pour reconnaître le document ; la loupe carrée, qui épouse les lignes de texte, permet de relire une clause sans ouvrir le PDF. La scène montre le parcours au clavier : le cadre a le focus et reçoit les flèches.
Réglages--mgl-shape: 4px (loupe carrée), --mgl-size: 92px, --mgl-ring: 2px solid #3b5bdb, data-zoom="3", --mgl-width: 180px, --mgl-ratio: 4/3. Dans la capture, la scène donne le focus au cadre et lui envoie les touches fléchées que le code écoute.

Comment ça marche

Le cadre .mgl-frame contient une vraie balise <img class="mgl-image"> et un disque vide .mgl-lens. Quand la loupe s'ouvre, le script lui donne comme fond l'image elle-même, ou le fichier indiqué dans data-zoom-src si vous en fournissez un plus grand. Changez la photo dans le HTML : la loupe suit, rien n'est recopié dans le JavaScript.

À chaque déplacement, le script refait le recadrage de object-fit: cover (même échelle, même décalage que la photo affichée), le multiplie par data-zoom (2 par défaut) et place le fond pour que le point visé tombe au centre du disque. La loupe peut déborder du cadre : le bord arrondi du cadre la coupe proprement.

Le script cherche chaque .fx-0180-root de la page et câble chacune à part : deux loupes sur une même page ne se gênent pas, et coller le script deux fois ne casse rien. Le cadre prend toute la largeur disponible jusqu'à --mgl-width (280 px) et garde la forme donnée par --mgl-ratio.

Accessibilité

  • Clavier : le cadre se reçoit au Tab et la loupe s'ouvre au centre (puis, les fois suivantes, à sa dernière position) ; les flèches la déplacent de 12 px (48 px avec Maj) et Échap la referme.
  • Toucher : poser le doigt ouvre la loupe à cet endroit, glisser la promène, lever le doigt la ferme, y compris après une simple tape. Le cadre bloque le défilement de la page pendant le geste (touch-action: none) : la page défile depuis le reste de l'écran.
  • Lecteurs d'écran : le cadre est un groupe nommé par son aria-label et l'image garde son texte alternatif ; la loupe et la légende sont masquées (aria-hidden), car elles ne montrent rien de plus que l'image.
  • Mouvement réduit : sous prefers-reduced-motion: reduce, la loupe apparaît sans fondu ; elle suit toujours le pointeur, car c'est l'utilisateur qui la déplace.

Compatibilité navigateur

Pointer Events, object-fit, aspect-ratio et environ 3,5 Ko de JavaScript, aucune dépendance. Mesuré dans Chromium 151, Firefox 153 et WebKit 26.5 : loupe sur une image rouge remplacée par l'acheteur (la loupe montre bien le rouge), deux copies indépendantes, script collé deux fois sans erreur, Tab et flèches, doigt réel à 390 px (Chromium), aucun débordement.

Chrome 88+✓ Complet (mesuré)
Firefox 89+✓ Complet (mesuré)
Safari 15+✓ Complet (moteur WebKit mesuré)
Edge 88+✓ Complet (moteur Chromium)
Mobile iOS 15+✓ Complet (moteur WebKit mesuré)
Android Chrome 88+✓ Complet (moteur Chromium)

Sans JavaScript, l'image s'affiche seule, sans loupe. Avant Safari 15 et Chrome 88 (pas d'aspect-ratio), le cadre prend la hauteur de l'image elle-même ; le zoom reste juste car il est calculé sur la taille réelle du cadre.

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec votre achat) :

index.html — structure
<div class="fx-0180-root">
  <div class="mgl-frame" tabindex="0" role="group" aria-label="Loupe : survolez l'image, glissez le doigt ou utilisez les flèches" data-zoom="2">
    <img class="mgl-image" src="votre-photo.jpg" data-zoom-src="votre-photo-grande.jpg" alt="Description de la photo">
    <span class="mgl-label" aria-hidden="true">Move Mouse</span>
    <div class="mgl-lens" aria-hidden="true"></div>
  </div>
</div>

Paiement unique, sans abonnement — le code est à toi pour toujours

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
Image (HTML — src de .mgl-image) motif violet quadrillé (SVG intégré) Mettez votre photo et son texte alt. Ajoutez data-zoom-src sur la même balise pour que la loupe montre un fichier plus grand et plus net que l'image affichée (même cadrage).
data-zoom (sur .mgl-frame) 2 Facteur d'agrandissement dans la loupe. 3 à 4 pour du texte imprimé ou une carte, 1.5 pour une photo de produit.
--mgl-size 100px Diamètre (ou côté) de la loupe.
--mgl-shape 50% Arrondi de la loupe : 50% pour un disque, 0 ou quelques pixels pour une loupe carrée.
--mgl-ring 3px solid #fff Bordure de la loupe, à accorder à votre charte.
--mgl-width · --mgl-ratio · --mgl-radius 280px · 7 / 5 · 0.75rem Largeur maximale du cadre (il rétrécit sur petit écran), proportions et arrondi. 100% pour une image pleine largeur.
Légende .mgl-label « Move Mouse » Texte posé au centre de l'image. Supprimez le <span> sur une vraie photo.

FAQ

Oui. Le script lit l'image de la balise <img> (ou data-zoom-src) au moment où la loupe s'ouvre. Si vous changez la photo par script, la loupe suit dès que la nouvelle image est chargée.
La loupe agrandit le fichier affiché. Une photo de 560 px affichée sur 280 px tient un zoom de 2 sans perte ; au-delà, donnez un fichier plus grand dans data-zoom-src.
Mettez --mgl-shape: 0 (ou 4px pour adoucir les coins) sur la racine. Le calcul du zoom ne change pas, seule la forme du disque change.