Galerie✨ Premium

Pan Zoom

Votre image reste agrandie une fois et demie dans son cadre ; la souris, le doigt ou les flèches choisissent la partie visible, et elle se recentre quand on s'en va.

JSTransform-origin

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

Toile panoramique d'une galerie en ligne — on parcourt le paysage à la souris — Pan Zoom exemple 1

① Toile panoramique d'une galerie en ligne — on parcourt le paysage à la souris

QuandSur le site de la Galerie Brenadine, la toile « Le lac au matin » remplit tout l'écran derrière la barre de navigation et une carte qui donne le format, l'année et le prix. Le visiteur promène la souris pour parcourir les sommets, le lac et la maison au bord de l'eau.
PourquoiUne grande toile réduite à la largeur d'un écran perd sa matière ; agrandie et pilotée par la souris, elle se parcourt comme devant le mur de la galerie, sans ouvrir de visionneuse.
RéglagesRacine en position: absolute; inset: 0, --pnz-width: 100%, --pnz-ratio: 540/360, --pnz-radius: 0, --pnz-scale: 1.4 ; barre et carte posées par-dessus avec pointer-events: none pour laisser passer le survol.
BAT d'une affiche avant impression — vérifier les coins — Pan Zoom exemple 2

② BAT d'une affiche avant impression — vérifier les coins

QuandDans l'espace client de l'Imprimerie Quiravelle, l'épreuve de l'affiche « Nuit des cuivres » est posée à gauche ; à droite, la liste des points vérifiés et les boutons « Valider le BAT » et « Corriger ». Le client survole l'affiche pour voir les traits de coupe et la mention de licence en bas.
PourquoiSur une épreuve, les erreurs se cachent dans les marges et les petites lignes : l'image agrandie en permanence oblige à regarder de près, et la souris mène l'œil jusqu'aux coins.
Réglages--pnz-width: 170px, --pnz-ratio: 5/7 (format de l'affiche), --pnz-radius: 2px, agrandissement par défaut (1,5) ; ombre portée ajoutée par la scène.
Mini-plan d'un parc de loisirs dans la barre d'infos — Pan Zoom exemple 3

③ Mini-plan d'un parc de loisirs dans la barre d'infos

QuandSur l'accueil du Parc Ferlimousse, un bloc blanc réunit un petit plan, les temps d'attente et le bouton « Billets ». En survolant le plan, le visiteur fait défiler les quatre mondes et lit l'attente de chaque attraction.
PourquoiLe plan entier serait illisible dans 166 px ; agrandi, il ne montre qu'un quartier à la fois et la souris choisit lequel : un aperçu qui oriente avant d'ouvrir le grand plan.
Réglages--pnz-width: 166px, --pnz-ratio: 3/2, --pnz-radius: 10px, --pnz-scale: 1.7.

Comment ça marche

L'<img class="pnz-image"> est agrandie en permanence par transform: scale(var(--pnz-scale)) (1,5) et le cadre .pnz-frame coupe ce qui dépasse. Seule une partie de l'image se voit donc à la fois, au repos le centre.

Le script ne change que le point d'origine de cet agrandissement (transform-origin). Sous la souris ou le doigt, il calcule la position en pourcentage du cadre et la donne comme origine : le coin survolé de l'image vient au bord correspondant du cadre, ce qui donne l'impression de promener la photo. Une transition de --pnz-follow (0,1 s) adoucit le suivi. En sortant du cadre, l'origine revient à 50 % 50 %.

Chaque .fx-0182-root de la page a son propre câblage, sans identifiant fixe : deux cadres ne se pilotent pas l'un l'autre et le script collé deux fois reste sans effet de bord. Le cadre suit la largeur disponible jusqu'à --pnz-width.

Accessibilité

  • Clavier : le cadre se prend au Tab ; les flèches déplacent la zone visible de 5 % de l'image (20 % avec Maj), Échap ou la sortie du cadre la recentrent.
  • Toucher : glisser le doigt sur l'image la parcourt ; le cadre retient le défilement de la page pendant le geste (touch-action: none). Lever le doigt recentre l'image.
  • Lecteurs d'écran : le cadre est un groupe nommé et l'image garde son texte alternatif ; l'agrandissement ne retire rien à ce qui est lu.
  • Mouvement réduit : sous prefers-reduced-motion: reduce, la zone visible saute directement au point visé, sans glissement.

Compatibilité navigateur

Transformations CSS, Pointer Events, aspect-ratio et 2 Ko de JavaScript, sans dépendance. Mesuré dans Chromium 151, Firefox 153 et WebKit 26.5 : deux copies indépendantes, script collé deux fois sans erreur, flèches au clavier, doigt réel à 390 px dans Chromium, rendu sans 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 reste agrandie et centrée, sans exploration. Sans aspect-ratio (avant Chrome 88 et Safari 15), le cadre prend la hauteur naturelle de l'image.

Le code

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

index.html — structure
<div class="fx-0182-root">
  <div class="pnz-frame" tabindex="0" role="group" aria-label="Image agrandie : survolez-la, glissez le doigt ou utilisez les flèches pour l'explorer">
    <img class="pnz-image" src="votre-photo.jpg" alt="Description de la photo">
    <span class="pnz-label" aria-hidden="true">Pan Around</span>
  </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 .pnz-image) motif violet quadrillé (SVG intégré) Votre photo et son alt. Prévoyez un fichier au moins --pnz-scale fois plus large que le cadre pour garder la netteté.
--pnz-scale 1.5 Agrandissement permanent. 1.2 pour un léger mouvement, 2 ou plus pour lire un détail.
--pnz-follow 0.1s Durée du glissement vers le point visé ; 0s pour un suivi sec, 0.3s pour un mouvement plus lent.
--pnz-width · --pnz-ratio · --pnz-radius 280px · 7 / 5 · 0.75rem Largeur maximale, proportions et arrondi du cadre ; 100% pour une image pleine largeur.
Légende .pnz-label « Pan Around » Texte centré sur l'image ; à supprimer sur une photo réelle.
touch-action (règle .pnz-frame) none Remplacez par pan-y si l'image est très haute sur mobile : la page défilera verticalement, l'exploration au doigt se fera en glissant de côté.

FAQ

Non : c'est le principe, l'image reste agrandie et le cadre n'en montre qu'une partie. Pour un zoom qui ne s'active qu'au survol ou au clic, voyez Hover Zoom ou Click to Zoom.
Quand le pointeur quitte le cadre, quand le doigt se lève, à Échap ou à la perte du focus, l'origine est remise à 50 % 50 %. Retirez l'écouteur pointerleave du script pour garder la dernière position.
Oui : mettez --pnz-width: 100% et la proportion de votre image dans --pnz-ratio. Le calcul se fait en pourcentage du cadre, sa taille réelle n'a pas d'importance.