Récemment, j'ai besoin de mettre en œuvre un minuteur visible dans le projet, et il y a déjà une conception d'interface utilisateur similaire dans le projet en tant que référence. Les utilisateurs n'ont pas besoin de voir le nombre diminuer, mais veulent plutôt voir une «barre» diminuer progressivement du complet au vide. J'ai mentionné cela car il existe de nombreuses façons d'implémenter l'interface utilisateur "temporisateur". Cet article ne concerne pas toutes ces méthodes (les résultats de recherche sur Codepen seraient plus utiles), mais plutôt celui qui fonctionne très bien pour moi.
Le type de minuterie dont j'ai besoin est ce qu'on appelle la barre "Tirl Time" dans le projet. La réalisation d'une action peut déclencher un temps de virage, et la plupart des actions suivantes seront bloquées jusqu'à la fin du temps de virage. Par conséquent, une minuterie claire de la barre rouge est le bon choix d'interface utilisateur. Cela donne aux gens un sentiment de rythme et de flux, vous pouvez "ressentir" l'heure de fin de la minuterie et planifier votre prochaine opération.
La définition de cette minuterie est assez facile ...
Créons une structure d'élément parent / enfant au cas où nous devons coiffer les parties vides du conteneur à l'avenir.
<div> <div></div> </div>
Maintenant, nous ne faisons que les bars intérieurs.
. hauteur: 5px; CONTEXTE: GRADIÉ LINÉAIRE (en bas, rouge, # 900); }
Cela nous donne une belle barre rouge qui peut être utilisée comme indicateur de temps.
Ensuite, nous devons le laisser compter, mais ici, nous devons considérer les fonctionnalités. Une telle minuterie a besoin de savoir combien de temps il faut! Nous pouvons fournir ces informations directement dans HTML. Cela ne signifie pas que nous évitons d'utiliser JavaScript - nous l' embrassons . Nous disons: "Hé, javascript, s'il vous plaît, donnez-nous une variable de durée et nous gérerons le reste."
<div style="--duration: 5;"> <div></div> </div>
En fait, cette approche est très adaptée au JavaScript de la manipulation de DOM moderne. Tant que --variable
est correct, il peut renvoyer l'élément DOM à tout moment, et nous pouvons nous assurer que la conception gère bien cette situation. Nous ferons une variation comme celle-ci.
Maintenant, commençons l'animation. La bonne nouvelle est que c'est simple. Il s'agit d'une image clé à ligne unique:
@KeyFrames Roundtime { à { / * Plus efficace que l'animation `width` * / transformée: scalex (0); } }
Nous pouvons "compresser" la barre car le style de la barre n'a pas l'air comprimé lorsque nous évoluons horizontalement. Si nous faisons cela, nous pouvons animer la largeur. Ce n'est pas un gros problème, d'autant plus qu'il ne réajuste pas la disposition de rien d'autre.
Maintenant, nous l'appliquons au bar:
. / * ... * / Animation: les étapes de calcul (var (- durée) * 1s) (var (- durée)) en avant; Transform-Origin: Centre gauche; }
Voyez comment nous utilisons la variable --duration
pour définir la durée de l'animation? Cela accomplit la plupart du travail. Je l'utilise également pour définir le même nombre d' steps()
afin qu'il diminue "Grid by Grid". "Bid-by-Frame" peut être un effet d'interface utilisateur visuel que vous aimez (j'aime), mais il s'adapte également à l'idée que JavaScript peut renvoyer cette barre à tout moment, et Bid-by-Frame le fait peu de choses. J'ai utilisé un entier comme valeur de durée afin qu'il puisse tous deux l'utiliser comme celui-ci.
Cependant, si vous voulez une animation fluide, nous pouvons le faire, par exemple:
<div ...="" data-style="smooth"></div>
Alors n'utilisez pas steps
:
.Round-Time-Bar [Data-Style = "Smooth"] Div { Animation: Ronds-Time Calc (var (- Durée) * 1S) Formeaux linéaires; }
Notez que nous utilisons également des animations linéaires, ce qui semble logique pour la minuterie. Le temps, comme celui-ci, ne se souciera pas. Ou le fera-t-il? Quoi qu'il en soit, c'est votre choix. Si vous voulez une minuterie qui ressemble à une accélération ou à une décélération à certains moments, allez-y.
Nous pouvons utiliser la même API basée sur data-attribute
pour implémenter les changements de couleur:
.Round-temps-bar [data-color = "blue"] div { Contexte: Linear-Gradient (en bas, # 64B5F6, # 1565C0); }
La dernière variante consiste à fixer la largeur de chaque "seconde". De cette façon, une minuterie de 10 secondes sera plus longue qu'une minuterie de 5 secondes:
.Round-time-bar [data-syle = "fixe"] div { Largeur: calc (var (- durée) * 5%); }
Voici une démonstration:
Faites attention aux conseils pour redémarrer les animations CSS.
Oh, au fait, je sais qu'il y en a un<meter></meter>
Élément, il peut être plus sémantique, mais sa propre interface utilisateur ne peut pas être animée comme je veux ici - du moins ne pas la combattre. Mais je ne sais pas si c'est plus accessible? Déclate-t-il sa valeur actuelle de manière utile? Si nous utilisons JavaScript pour mettre à jour en temps réel<meter></meter>
, serait-ce une minuterie plus accessible? Si quelqu'un le sait, je peux lier une solution ici.
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!

En cette semaine, Roundup: Firefox Gains Gains Loksmith Powers, Samsung & # 039; S Galaxy Store commence à prendre en charge les applications Web progressives, CSS Sous-Grid est expédié dans Firefox

Dans cette semaine, Roundup: Internet Explorer trouve son chemin, Google Search Console vante un nouveau rapport de vitesse et Firefox donne la notification de Facebook

Vous êtes probablement déjà au moins un peu familier avec les variables CSS. Sinon, voici un aperçu de deux secondes: ils sont vraiment appelés propriétés personnalisées, vous définissez

La construction de sites Web est la programmation. L'écriture de HTML et CSS est la programmation. Je suis programmeur, et si vous êtes ici, en lisant CSS-Tricks,

Voici ce que j'aimais ce que je vous aime à l'avant: c'est un problème difficile. Si vous avez atterri ici parce que vous espérez être pointé sur un outil que vous pouvez exécuter qui indique

Image-in-Picture a fait sa première apparition sur le Web dans le navigateur Safari avec la sortie de MacOS Sierra en 2016. Il a permis à un utilisateur de faire éclater

Gatsby fait un excellent traitement et la gestion des images. Par exemple, cela vous aide à gagner du temps avec l'optimisation de l'image parce que vous n'avez pas à

J'ai appris quelque chose sur le rembourrage basé sur le pourcentage (%) aujourd'hui que j'avais totalement tort dans ma tête! J'ai toujours pensé que le pourcentage de rembourrage était basé sur le


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

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel