recherche
Maisoninterface Webtutoriel CSSBarres de minuterie dans CSS avec des propriétés personnalisées

Barres de minuterie dans CSS avec des propriétés personnalisées

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Actualités hebdomadaires de la plate-forme: applications Web dans Galaxy Store, histoires tappables, sous-réseau CSSActualités hebdomadaires de la plate-forme: applications Web dans Galaxy Store, histoires tappables, sous-réseau CSSApr 14, 2025 am 11:20 AM

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

Actualités hebdomadaires de la plate-forme: mode explorateur Internet, rapport de vitesse dans la console de recherche, restreindre les invites de notificationActualités hebdomadaires de la plate-forme: mode explorateur Internet, rapport de vitesse dans la console de recherche, restreindre les invites de notificationApr 14, 2025 am 11:15 AM

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

La puissance (et le plaisir) de la portée avec les propriétés personnalisées CSSLa puissance (et le plaisir) de la portée avec les propriétés personnalisées CSSApr 14, 2025 am 11:11 AM

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

Nous sommes programmeursNous sommes programmeursApr 14, 2025 am 11:04 AM

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,

Comment supprimer le CSS inutilisé d'un site?Comment supprimer le CSS inutilisé d'un site?Apr 14, 2025 am 10:59 AM

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

Une introduction à l'API Web d'image dans l'imageUne introduction à l'API Web d'image dans l'imageApr 14, 2025 am 10:57 AM

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

Façons d'organiser et de préparer des images pour un effet flou à l'aide de GatsbyFaçons d'organiser et de préparer des images pour un effet flou à l'aide de GatsbyApr 14, 2025 am 10:56 AM

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 à

Oh hé, le pourcentage de rembourrage est basé sur la largeur de l'élément parentOh hé, le pourcentage de rembourrage est basé sur la largeur de l'élément parentApr 14, 2025 am 10:55 AM

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

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version crackée d'EditPlus en chinois

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

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

MinGW - GNU minimaliste pour Windows

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

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

DVWA

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