


Vue et Canvas : Comment implémenter des fonctions de signature manuscrite et de reconnaissance gestuelle
Vue et Canvas : Comment implémenter les fonctions de signature manuscrite et de reconnaissance gestuelle
Introduction :
Les fonctions de signature manuscrite et de reconnaissance gestuelle sont de plus en plus courantes dans les applications modernes, et elles peuvent offrir aux utilisateurs un moyen d'interaction plus intuitif et naturel. En tant que framework frontal populaire, Vue.js peut réaliser ces deux fonctions avec l'élément Canvas. Cet article expliquera comment utiliser les éléments Vue.js et Canvas pour implémenter les fonctions de signature manuscrite et de reconnaissance gestuelle, et donnera des exemples de code correspondants.
1. Implémentation de la fonction de signature manuscrite
Pour implémenter la fonction de signature manuscrite, nous devons d'abord créer un composant Vue contenant l'élément Canvas. Dans ce composant, nous implémenterons la fonction permettant aux utilisateurs de dessiner des signatures sur Canvas.
<template> <div> <h1>手写签名</h1> <canvas ref="canvas" @mousedown="startDrawing" @mousemove="drawing" @mouseup="stopDrawing"></canvas> <button @click="clearCanvas">清除</button> <button @click="saveSignature">保存</button> </div> </template> <script> export default { data() { return { isDrawing: false, signatureData: null } }, methods: { startDrawing(event) { this.isDrawing = true; const canvas = this.$refs.canvas; const ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(event.pageX - canvas.offsetLeft, event.pageY - canvas.offsetTop); }, drawing(event) { if (!this.isDrawing) return; const canvas = this.$refs.canvas; const ctx = canvas.getContext('2d'); ctx.lineTo(event.pageX - canvas.offsetLeft, event.pageY - canvas.offsetTop); ctx.stroke(); }, stopDrawing() { this.isDrawing = false; }, clearCanvas() { const canvas = this.$refs.canvas; const ctx = canvas.getContext('2d'); ctx.clearRect(0, 0, canvas.width, canvas.height); }, saveSignature() { const canvas = this.$refs.canvas; this.signatureData = canvas.toDataURL(); } } } </script> <style scoped> canvas { border: 1px solid black; } </style>
Dans ce code, nous définissons d'abord deux attributs de données, isDrawing et signatureData, pour enregistrer si l'utilisateur dessine et enregistre les données de signature. Dans la méthode startDrawing, nous écoutons l'événement de pression de la souris, obtenons le contexte de l'élément Canvas et commençons à dessiner le chemin. Dans la méthode de dessin, nous mettons à jour le chemin de dessin en temps réel jusqu'à ce que la souris soit relâchée. Dans la méthode stopDrawing, nous définissons isDrawing sur false pour arrêter de dessiner le chemin. La méthode clearCanvas est utilisée pour effacer le contenu du canevas. La méthode saveSignature convertit le contenu du Canvas en données codées en base64 et l'enregistre dans signatureData.
2. Implémentation de la fonction de reconnaissance gestuelle
Pour implémenter la fonction de reconnaissance gestuelle, nous pouvons utiliser des bibliothèques tierces telles que Hammer.js pour gérer les événements tactiles et coopérer avec Canvas pour réaliser le dessin et la reconnaissance gestuelle.
Tout d'abord, installez la bibliothèque Hammer.js dans le projet :
npm install hammerjs --save
Ensuite, importez la bibliothèque Hammer.js dans le composant Vue et utilisez-la pour gérer les événements gestuels :
<template> <div> <h1>手势识别</h1> <canvas ref="canvas"></canvas> <button @click="recognizeGesture">识别</button> </div> </template> <script> import Hammer from 'hammerjs'; export default { mounted() { const canvas = this.$refs.canvas; const ctx = canvas.getContext('2d'); const mc = new Hammer(canvas); mc.get('swipe').set({ direction: Hammer.DIRECTION_ALL }); mc.on('swiperight swipeleft swipeup swipedown', function (event) { ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.fillText(event.type, canvas.width / 2, canvas.height / 2); }); } } </script> <style scoped> canvas { border: 1px solid black; } </style>
Dans ce code, nous importons d'abord Hammer.js bibliothèque, créez un objet Hammer dans la fonction hook montée du composant Vue et spécifiez le type de geste qui doit être reconnu. Ensuite, nous utilisons la méthode mc.on pour écouter les événements de geste, et dans la fonction de rappel correspondante, effaçons le contenu sur le canevas et dessinons le type de geste.
Conclusion :
En combinant des éléments Vue.js et Canvas, nous pouvons facilement implémenter des fonctions de signature manuscrite et de reconnaissance gestuelle. La fonction de signature manuscrite peut offrir aux utilisateurs une manière plus intuitive et naturelle de signer, tandis que la fonction de reconnaissance gestuelle peut offrir aux utilisateurs une manière d'interaction plus libre et intuitive. J'espère que cet article vous sera utile, merci d'avoir lu !
Matériaux de référence :
- Documentation officielle de Vue : https://vuejs.org/
- Documentation officielle de Canvas : https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API
- Hammer Documentation officielle .js : https://hammerjs.github.io/
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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Sujets chauds

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Le développement multi-pages VUE est un moyen de créer des applications à l'aide du cadre Vue.js, où l'application est divisée en pages distinctes: Maintenance du code: La division de l'application en plusieurs pages peut rendre le code plus facile à gérer et à maintenir. Modularité: chaque page peut être utilisée comme module séparé pour une réutilisation et un remplacement faciles. Routage simple: la navigation entre les pages peut être gérée par une configuration de routage simple. Optimisation du référencement: chaque page a sa propre URL, ce qui aide le référencement.

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Il existe trois méthodes courantes pour que Vue.js traverse les tableaux et les objets: la directive V-FOR est utilisée pour traverser chaque élément et les modèles de rendu; La directive V-Bind peut être utilisée avec V-FOR pour définir dynamiquement les valeurs d'attribut pour chaque élément; et la méthode .map peut convertir les éléments du tableau en nouveaux tableaux.

Il existe deux façons de sauter des éléments div dans Vue: Utilisez le routeur Vue et ajoutez le composant routeur-link. Ajoutez l'écouteur de l'événement @Click et appelez ceci. $ Router.push () pour sauter.
