


Brisez les limites de la syntaxe du canevas et laissez-la prendre en charge les compétences du didacticiel syntax_html5 en chaîne
Examinons d'abord une syntaxe normale de dessin sur toile :
ctx.arc(centerX,centerY,radius,0,PI*2,true);
ctx.shadowColor = 'rgba(0,0,0,0.5)';
ctx.shadowBlur = "10" ;
ctx.fill();
ctx.beginPath();
ctx.shadowColor = 'rgba(0,0,0,0)';
ctx.moveTo( centerX-rayon, centerY);
ctx.lineTo(centerX-radius,centerY - 50);
ctx.lineTo(centerX rayon,centerY - 50);
ctx.lineTo(centerX rayon,centerY) ;
// ctx.lineTo(centerX-radius,centerY);
ctx.fill();
ctx.beginPath();
ctx.fillStyle = 'rgba(255,0,0 ,1)' ;
ctx.arc(centerX,centerY-50,radius,0,PI*2,true);
ctx.fill();
Je ne suis pas satisfait de la syntaxe native du canevas Il y a deux points : 1. Chaque phrase est précédée de ctx (c'est-à-dire l'objet context2d de canevas), et 2. Chaque fonction ou attribut occupe une ligne, ce qui est une perte d'espace.
J'apprécie vraiment la syntaxe de chaîne de jQuery, telle que :
$('#div1').show(300).html(p).delay(3000).slideUp(300).remove();
Par conséquent, je souhaite également utiliser cette syntaxe pour le dessin sur toile :
ctx.moveTo(500,0).lineTo(500,500).StrokeStyle('#f00').Stroke();
Une façon consiste à simuler un Objet context2d, cet objet prend en charge toutes les méthodes natives context2d, mais prend également en charge le chaînage.
Cependant, vous ne pouvez pas avoir trop de code, sinon personne n'aimera l'utiliser.
Ce qui suit est l'extrait de code complet. J'ai nommé cette "classe" XtendCanvas (elle commence à nouveau par X) :
// Laisser Canvas prendre en charge la syntaxe de la chaîne, de Ten Years Light
~function () {var pro = ['save ','restaurer', 'scale', 'rotate', 'translate', 'transform', 'createLinearGradient', 'createRadialGradient', 'getLineDash', 'clearRect', 'fillRect', 'beginPath', 'closePath', 'moveTo', 'lineTo', 'quadraticCurveTo', 'bezierCurveTo', 'arcTo', 'rect', 'arc', 'fill', 'AVC', 'clip', 'isPointInPath', 'measureText', 'clearShadow ', 'fillText', 'StrokeText', 'StrokeRect', 'drawImage', 'drawImageFromRect', 'putImageData', 'createPattern', 'createImageData', 'getImageData', 'lineWidth','StrokeStyle','globalAlpha', 'fillStyle','font','shadowOffsetX','shadowOffsetY','shadowBlur','shadowColor','lineCap','lineJoin','miterLimit'];
function XtendCanvas (canvas) {
var ctx = canvas.getContext('2d'),
fn = function(){},
fnP = fn.prototype;
for(var j = 0,p=pro[0] ;p;p=pro[j ]) {
fn.prototype[p] = function (p) {
return function () {
var args = Array.prototype.slice.call(arguments) ;
// console.log(args);
if(typeof ctx[p] == 'function') {
ctx[p].apply(ctx,args);
} else {
ctx[p] = args '';
}
return fnP;
};
}(p);
}
return new fn;
};
window. Il peut être utilisé comme context2d ordinaire, mais la différence est qu'il prend en charge la syntaxe de chaîne :
Copier le code
De cette façon, vous pouvez mettre toutes les opérations en une seule phrase, et vous pouvez également interrompre à tout moment, faire autre chose, puis continuer.
Ce code n'est pas une amélioration de Canvas, mais lui permet simplement de prendre en charge la syntaxe de chaîne. Mais l'avantage est qu'il contient moins de code et peut être intégré dans n'importe quelle bibliothèque JS. Ici, j'espère obtenir une "recommandation" de votre part
Il doit y avoir des domaines qui méritent d'être améliorés dans le code, et tout le monde peut l'améliorer. par eux-mêmes. Mais n'oubliez pas le puisatier lorsque vous buvez de l'eau. J'espère que tout le monde se souviendra de moi. Le plus important, c'est l'idée, n'est-ce pas ? Voici l'idée :
Comme vous pouvez le voir, la partie la plus longue du code est le tableau pro qui stocke le nom de la méthode, tandis que le code principal est très court. Pourquoi dois-je créer un tel tableau ?
À l'origine, je voulais hériter de toutes les méthodes natives directement de CanvasRenderingContext2D, mais lors de la traversée de ce CanvasRenderingContext2D dans chaque navigateur, les résultats étaient incohérents. Si j'en hérite directement, lorsque vous souhaitez utiliser la méthode dans Chrome pour l'exécuter dans Firefox, une erreur sera signalée.
Je viens donc d'extraire les méthodes et les noms de propriétés courants et incontestables dans CanvasRenderingContext2D. Il n'y a pas d'autre moyen que de construire un tableau fixe - vous pouvez y ajouter vos méthodes à votre propre discrétion.
Les méthodes et propriétés sont extraites, puis les méthodes natives sont ajoutées à mon nouvel objet. J'ai créé une fonction vide appelée fn pour placer mes méthodes.
Puisque ces éléments du tableau ont à la fois des fonctions et des attributs, j'ai jugé s'il s'agissait d'une fonction dans la boucle. Si c'est une fonction, elle sera exécutée avec des paramètres si ce n'est pas une fonction. ce doit être un attribut, attribuez le paramètre à cet attribut.
De cette façon, lorsque vous définissez l'attribut canvas, vous n'avez pas besoin d'interrompre la chaîne. Vous pouvez simplement passer la valeur de l'attribut directement en paramètre, par exemple :
Des fonctions anonymes, des fermetures, des prototypes et l'étrange boucle for dont j'ai parlé dans les articles précédents sont utilisés dans ce paragraphe.
Cela semble assez simple à dire, mais j'y ai vraiment réfléchi pendant longtemps et j'espère que cela sera utile à tout le monde.
Dans le processus d'écriture du code, j'ai trouvé que Chrome a une très bonne approche. Il dispose d'une série de fonctions commençant par set, telles que setStrokeColor, setLineCap et d'autres fonctions. remplacez le StrokeStyle et le lineCap correspondants. En attente d'attributs, c'est-à-dire que son canevas est plein de fonctions et aucun attribut. Dans ce cas, je n'ai pas à juger s'il s'agit d'une fonction ou d'un attribut. Mais cela n’existe pas dans Firefox, je ne peux donc utiliser que l’idée précédente.
Permettez-moi également de libérer la fonction définie :
Enfin, je me demande pourquoi mon code n'est pas mis en évidence. . . Si vous l'avez regardé jusqu'au bout, autant me faire une recommandation, pour que je puisse aussi être vaniteux.

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

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)

L'exécution du projet H5 nécessite les étapes suivantes: Installation des outils nécessaires tels que le serveur Web, Node.js, les outils de développement, etc. Créez un environnement de développement, créez des dossiers de projet, initialisez les projets et écrivez du code. Démarrez le serveur de développement et exécutez la commande à l'aide de la ligne de commande. Aperçu du projet dans votre navigateur et entrez l'URL du serveur de développement. Publier des projets, optimiser le code, déployer des projets et configurer la configuration du serveur Web.

La production de pages H5 fait référence à la création de pages Web compatibles compatibles multiplateformes à l'aide de technologies telles que HTML5, CSS3 et JavaScript. Son cœur réside dans le code d'analyse du navigateur, la structure de rendu, le style et les fonctions interactives. Les technologies courantes incluent les effets d'animation, la conception réactive et l'interaction des données. Pour éviter les erreurs, les développeurs doivent être débogués; L'optimisation des performances et les meilleures pratiques incluent l'optimisation du format d'image, la réduction des demandes et les spécifications du code, etc. pour améliorer la vitesse de chargement et la qualité du code.

Les étapes pour créer une icône H5 Click comprennent: la préparation d'une image source carrée dans le logiciel d'édition d'image. Ajoutez l'interactivité dans l'éditeur H5 et définissez l'événement Click. Créez un hotspot qui couvre l'icône entière. Définissez l'action des événements de clic, tels que le saut sur la page ou le déclenchement de l'animation. Exporter H5 documents sous forme de fichiers HTML, CSS et JavaScript. Déployez les fichiers exportés vers un site Web ou une autre plate-forme.

H5 n'est pas un langage de programmation autonome, mais une collection de HTML5, CSS3 et JavaScript pour la création d'applications Web modernes. 1. HTML5 définit la structure et le contenu de la page Web et fournit de nouvelles balises et API. 2. CSS3 contrôle le style et la mise en page, et introduit de nouvelles fonctionnalités telles que l'animation. 3. JavaScript implémente l'interaction dynamique et améliore les fonctions par les opérations DOM et les demandes asynchrones.

H5 (HTML5) convient aux applications légères, telles que les pages de campagne de marketing, les pages d'affichage des produits et les micro-Websites de promotion d'entreprise. Ses avantages résident dans la plateformité multi-plateaux et une riche interactivité, mais ses limites résident dans des interactions et des animations complexes, un accès aux ressources locales et des capacités hors ligne.

Oui, la production de pages H5 est une méthode de mise en œuvre importante pour le développement frontal, impliquant des technologies de base telles que HTML, CSS et JavaScript. Les développeurs construisent des pages H5 dynamiques et puissantes en combinant intelligemment ces technologies, telles que l'utilisation du & lt; Canvas & gt; Tag pour dessiner des graphiques ou utiliser JavaScript pour contrôler le comportement d'interaction.

H5 ÉTAPES DE CRÉATION DE LA FINES POP-UP: 1. Déterminez la méthode de déclenchement (cliquez, temps, sortie, défilement); 2. Conception du contenu (titre, texte, bouton d'action); 3. Set Style (taille, couleur, police, arrière-plan); 4. Implémentation du code (HTML, CSS, JavaScript); 5. Tester et déploiement.

L'article traite de la gestion de la confidentialité de l'emplacement des utilisateurs et des autorisations à l'aide de l'API Geolocation, mettant l'accent sur les meilleures pratiques pour demander des autorisations, assurer la sécurité des données et se conformer aux lois sur la confidentialité.
