Maison > Article > interface Web > Comment utiliser Vue pour implémenter les effets spéciaux du cercle de progression
Comment utiliser Vue pour implémenter les effets de cercle de progression
Introduction :
Dans le développement Web, les effets de cercle de progression sont souvent utilisés pour afficher la progression du chargement, le compte à rebours et d'autres scénarios. En tant que framework frontal populaire, Vue fournit une multitude d'outils et de fonctions de hook de cycle de vie, qui peuvent facilement implémenter divers effets spéciaux. Cet article expliquera comment utiliser Vue pour implémenter un simple effet de cercle de progression et fournira des exemples de code pertinents.
1. Initialisation du projet
Tout d'abord, nous devons créer un projet Vue. Vous pouvez utiliser Vue-CLI pour créer rapidement un squelette de projet de base. Exécutez la commande suivante dans la ligne de commande :
npm install -g @vue/cli vue create progress-circle-demo cd progress-circle-demo npm run serve
La commande ci-dessus installera Vue-CLI globalement, créera un projet nommé progress-circle-demo et démarrera le serveur de développement.
2. Écrivez le composant
Créez un fichier nommé ProgressCircle.vue dans le répertoire src comme code principal du composant progress circle. Le code spécifique est le suivant :
<template> <div class="progress-circle"> <div class="circle"> <div class="mask full"></div> <div class="mask half"></div> <div class="fill"></div> </div> <span class="text">{{ progress }}%</span> </div> </template> <script> export default { props: { progress: { type: Number, default: 0, validator(value) { return value >= 0 && value <= 100; } } } } </script> <style scoped> .progress-circle { display: inline-block; position: relative; width: 50px; height: 50px; } .circle { position: relative; width: 100%; height: 100%; transform: rotate(-90deg); border-radius: 50%; overflow: hidden; box-sizing: border-box; } .mask { position: absolute; width: 100%; height: 100%; border-radius: 50%; clip: rect(0, 50px, 50px, 25px); } .full { background-color: #ccc; } .half { background-color: #f60; } .fill { position: absolute; width: 100%; height: 100%; background-color: #f60; transform: rotate(0deg); transform-origin: center center; transition: transform 0.6s ease-out; } .text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 14px; color: #333; } </style>
Le code ci-dessus définit un composant ProgressCircle, qui utilise une structure HTML pour obtenir l'effet du cercle de progression et accepte la valeur de progression via l'attribut props. Le cercle de progression se compose d'un calque de masque circulaire et d'un calque de remplissage. L'effet d'animation est obtenu en modifiant l'attribut de transformation du calque de remplissage.
3. Utiliser des composants
Utilisez le composant que vous venez d'écrire dans le fichier App.vue du répertoire src. Le code spécifique est le suivant :
<template> <div id="app"> <ProgressCircle :progress="60" /> </div> </template> <script> import ProgressCircle from './components/ProgressCircle.vue'; export default { name: 'App', components: { ProgressCircle } } </script>
Le code ci-dessus introduit le composant ProgressCircle et l'utilise dans le modèle, en passant l'attribut progress pour contrôler la progression.
4. Exécutez le projet
Nous pouvons maintenant exécuter la commande npm run serve
dans la ligne de commande pour démarrer le serveur de développement. Ouvrez http://localhost:8080 dans le navigateur pour voir l'effet de cercle de progression.
Résumé :
Cet article présente comment utiliser Vue pour implémenter des effets spéciaux de cercle de progression à travers un exemple simple. Dans le projet, des ajustements de style et de logique correspondants peuvent être effectués en fonction des besoins réels. J'espère que cet article vous aidera à comprendre comment implémenter les effets spéciaux du cercle de progression dans Vue.
Lien de référence :
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!