Afficher les transitions en dehors de la fenêtre
Les transitions de vue CSS ont atterri dans Chrome et sont désormais (pour le meilleur ou pour le pire) largement disponibles pour la plupart des utilisateurs finaux. Safari n'est pas loin derrière, la fonctionnalité étant disponible dans TP et Firefox y travaille au moins.
J'aime à quel point la mise en œuvre des transitions sur plusieurs pages est devenue plus simple, mais en même temps, j'ai réalisé une grosse bête noire avec elles : les éléments qui sont hors de la fenêtre d'affichage commencent à tourbillonner sauvagement.
Mon blog traite de cela avec du Javascript. Un IntersectionObserver définit le nom de transition de vue dans une propriété personnalisée lorsqu'il est visible. Tant qu’elle est hors de vue, la propriété n’est pas définie et la transition ne se déclenche pas. Cela fonctionne, mais il faut que HTML, Javascript et CSS dépendent les uns des autres. Dans l’esprit de conserver les questions de présentation au CSS, j’aimerais une solution plus simple.
Une autre fonctionnalité qui pourrait être utile a récemment atterri dans Chrome : les animations pilotées par défilement. Malheureusement, cela n’est encore disponible que dans Chrome. Firefox l'a derrière un drapeau et Safari ne montre aucun signe d'activité ici. Mais nous pouvons nous rabattre gracieusement, soit sur la solution Javascript mentionnée précédemment, soit même simplement ignorer la détection de la fenêtre d'affichage et afficher quand même l'animation (ce serait le cas dans Safari au moment de la rédaction).
Une transition simple
Rassemblons tout cela, en commençant par la transition de vue elle-même :
@media (prefers-reduced-motion: no-preference) { @view-transition { navigation: auto; } [data-view-transition] { view-transition-name: var(--view-transition-name, default-view-transition); } }
<!-- on page1.html: --> <div data-view-transition>Whoosh!</div> <!-- on page2.html: --> <div data-view-transition>Whoosh!</div>
Vous verrez maintenant le div de page1.html se transformer en sa version sur page2.html lors de la navigation. La règle at @view-transition en CSS lance également un fondu enchaîné sur l'ensemble du document. La durée de transition est fixée par défaut à 0,4s, mais nous pouvons utiliser quelques lignes pour contrôler cela :
@property --view-transition-duration { syntax: "<time>"; inherits: true; initial-value: 0.4s; } ::view-transition-group(*) { animation-duration: var(--view-transition-duration); }
La durée est définie par --view-transition-duration La règle @property en haut est entièrement facultative, mais elle permet à la durée de l'animation de retomber à 0,4 s au lieu d'une valeur invalide lorsque nous définissons --view- durée de transition : fausse.
Gérer la fenêtre
Pourtant, lorsqu'un élément est en dehors de la fenêtre d'affichage au moment d'une transition de page, il s'animera toujours, et passera parfois dans ou sur tout l'écran visible sans indiquer d'où il vient ni où il va. Je trouve ce comportement très irritant.
Avec les animations pilotées par défilement, nous disposons désormais d'un outil capable de contrôler les styles en fonction d'un défilement et d'une position relative à la fenêtre d'affichage. Nous pouvons donc également contrôler le déclencheur des transitions de vue :
@media (prefers-reduced-motion: no-preference) { @view-transition { navigation: auto; } [data-view-transition] { view-transition-name: var(--view-transition-name, default-view-transition); } }
L'animation d'image clé activate-vt ne peut pas passer facilement de none à une propriété personnalisée avec une chaîne de texte, elle effectuera donc une coupe difficile. La plage d'animation se déclenche lorsque l'élément entre ou quitte la fenêtre, même partiellement. L'animation elle-même définit --enable-view-transition sur 0,1 % et 99,9 % pour se déclencher aussi rapidement que possible. Je souhaite activer les transitions de vue dès que nous pouvons avoir une idée de l'endroit où l'animation a commencé ou s'est terminée.
Enfin, --enable-view-transitions est défini par l'animation de défilement sur none ou sur une nouvelle propriété personnalisée appelée --view-transition-name. Il est réglé entre 0,1 % et 99,9 % de la couverture de l'écran, désactivant les transitions de vue au-dessus et au-dessous de la fenêtre (ou à gauche et à droite, quelle que soit la façon dont vous souhaitez la tenir). Cette nouvelle propriété est utile pour définir des animations individuelles sur différents éléments. Chaque élément peut obtenir sa propre transition en définissant une valeur unique sur --view-transition-name.
<div data-view-transition> <p>Cela doit être fait à la fois sur la page source et sur la page cible. Si aucune valeur n'est définie, la valeur par défaut est default-view-transition qui contrôle uniformément tous les éléments data-view-transition restants.</p> <h2> Mise en œuvre dans le monde réel </h2> <p>J'ai ajouté cette implémentation à mon petit passe-partout CSS, Ssstyles. Donner à un élément l'attribut data-view-transition sur les pages source et cible lui permettra de passer de l'une à l'autre. Lui donner un --view-transition-name lui permettra d'avoir sa propre animation unique, indépendante des autres éléments similaires. La définition de --view-transition-duration contrôle la durée de la transition.</p>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Si vous avez récemment commencé à travailler avec GraphQL ou examiné ses avantages et ses inconvénients, vous avez sans aucun doute entendu des choses comme "GraphQL ne prend pas en charge la mise en cache" ou

Avec la récente montée du prix du bitcoin sur 20k $ USD, et pour lui, récemment en train de briser 30k, je pensais que cela valait la peine de reprendre une profonde plongeon dans la création d'Ethereum

Quelle que soit le stade dans lequel vous vous trouvez en tant que développeur, les tâches que nous effectuons - qu'elles soient grandes ou petites - ont un impact énorme dans notre croissance personnelle et professionnelle.

Il est sorti! Félicitations à l'équipe Vue pour l'avoir fait, je sais que ce fut un effort massif et une longue période à venir. Tous les nouveaux documents aussi.

J'ai eu quelqu'un qui écrivait avec cette question très légitime. Lea vient de bloguer sur la façon dont vous pouvez obtenir les propriétés CSS valides elles-mêmes du navigateur. C'est comme ça.

Je dirais que "Site Web" correspond mieux que "Application mobile" mais j'aime ce cadrage de Max Lynch:

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Il existe un certain nombre de ces applications de bureau où l'objectif montre votre site à différentes dimensions en même temps. Vous pouvez donc, par exemple, écrire
