Cette fois, je vous apporte une explication détaillée de l'utilisation du composant Vue ripple groupe de boutons Quelles sont les précautions lors de l'utilisation du composant Vue ripple bouton. Voici des cas pratiques. , jetons un coup d'oeil.
Permettez-moi d'abord de parler de l'utilisation :
1 2 3 | <zk-button class = "btn btn-default" >默认按钮</zk-button>
<zk-button class = "btn btn-default btn-round" >默认按钮</zk-button>
<zk-button class = "btn btn-default btn-round" :speed= "4" :opacity= "0.6" >定义速度和初始的波浪透明度</zk-button>
|
Copier après la connexion
Principe :
La toile + requestAnimationFrame (pour des raisons de compatibilité, vous pouvez trouver des solutions en ligne). Certaines des ondulations dessinées sont réalisées avec css transform + setTimeout.
Modèle :
1 2 3 4 5 6 | <template>
<button class = "zk-btn" >
<canvas class = "zk-ripple" @click= "ripple" ></canvas>
<slot></slot>
</button>
</template>
|
Copier après la connexion
Le code de clic est le suivant (j'ai ajouté des
commentaires détaillés)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ripple(event) {
if (this.timer) {
window.cancelAnimationFrame(this.timer);
}
this.el = event.target;
if (!this.initialized) {
this.initialized = true;
this.init(this.el);
}
this.radius = 0;
this.origin.x = event.offsetX;
this.origin.y = event.offsetY;
this.context.clearRect(0, 0, this.el.width, this.el.height);
this.el.style.opacity = this.opacity;
this.draw();
},
|
Copier après la connexion
Ici, on initialise principalement le toile Et obtenez les coordonnées de localisation du clic de l'utilisateur et commencez à dessiner.
Dessin de boucle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | draw() {
this.context.beginPath();
this.context.arc(this.origin.x, this.origin.y, this.radius, 0, 2 * Math.PI, false);
this.context.fillStyle = this.color;
this.context.fill();
this.radius += this.speed;
this.el.style.opacity -= this.speedOpacity;
if (this.radius < this.el.width || this.el.style.opacity > 0) {
this.timer = window.requestAnimationFrame(this.draw);
} else {
this.context.clearRect(0, 0, this.el.width, this.el.height);
this.el.style.opacity = 0;
}
}
|
Copier après la connexion
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes. sur le site PHP chinois !
Lecture recommandée :
Explication détaillée des étapes pour implémenter le plug-in de défilement plein écran dans ES6
vue +vue-router+autorisations d'opération vuex
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!