Pouvons-nous placer une toile à l'intérieur de la toile existante? Si nous pouvons, s'il vous plaît aider à le faire en html5.Toile à l'intérieur de la toile de html5
Répondre
Il existe deux façons d'interpréter votre question. La première est que vous voulez dire à réellement nid canvas
éléments eux-mêmes, comme celui-ci:
<canvas id="outer">
<canvas id="inner"></canvas>
</canvas>
C'est légal (selon validator.nu) mais inutile. Le contenu à l'intérieur de l'élément canvas
est destiné au remplacement. La seule façon dont le contenu à l'intérieur de l'élément canvas
est utilisé est si le navigateur ne prend pas en charge canvas
, auquel cas l'élément interne canvas
ne sera pas vu de toute façon.
L'autre façon possible d'interpréter votre question est que vous pouvez afficher l'image affichée sur une toile dans une autre. C'est assez simple, un élément canvas
peut être utilisé comme premier paramètre à context.drawImage()
. Si vous avez deux canvas
éléments:
<canvas id="c1" width="200" height="200"></canvas>
<canvas id="c2" width="200" height="200"></canvas>
Ensuite this script (using jQuery) attireront le premier canvas
puis ajouter que quatre fois une image à la seconde canvas
:
var c1 = $('#c1');
var ctx1 = c1[0].getContext('2d');
ctx1.fillRect(50,50,100,100);
var c2 = $('#c2');
var ctx2 = c2[0].getContext('2d');
ctx2.drawImage(c1[0],0,0,100,100);
ctx2.drawImage(c1[0],100,0,100,100);
ctx2.drawImage(c1[0],0,100,100,100);
ctx2.drawImage(c1[0],100,100,100,100);
Mais encore une fois, pourquoi voulez-vous? Vous pouvez reproduire l'image du second canvas
ci-dessus just using one:
var c1 = $('#c1');
var ctx1 = c1[0].getContext('2d');
ctx1.fillRect(25,25,50,50);
ctx1.fillRect(125,25,50,50);
ctx1.fillRect(25,125,50,50);
ctx1.fillRect(125,125,50,50);
Donc, en résumé: oui, il est possible, mais ce n'est pas vraiment nécessaire dans l'utilisation simple.
Il y a beaucoup de raisons (certes non-triviales) pour utiliser une deuxième toile. Par exemple, dessiner un graphique en mouvement est plus facile en copiant le graphique sur un autre canevas hors écran, en effaçant le canevas principal, puis en copiant le décalage arrière du canevas offscreen à gauche d'un pixel et en dessinant les nouvelles données dans la colonne manquante. (Cela n'est nécessaire que si l'arrière-plan du graphique est transparent.) – Phrogz
@Phrogz Oui, également diverses choses de traitement d'image. Mais je maintiens mon "ce n'est pas vraiment nécessaire dans un usage simple", je ne pense pas que tout cela soit pertinent pour cette question ou cette réponse. – robertc
Peut-être pas, mais un nouveau venu pourrait prendre votre expression pour dire que c'est excessif, alors que c'est souvent le moyen le plus propre et le plus efficace d'accomplir quelque chose. Si vous avez une toile changeante avec des éléments statiques (par exemple, un jeu), cette technique présente des avantages de performance massifs - vous n'avez besoin de dessiner le bitmap/vecteurs qu'une seule fois, puis de le dessiner sur le canevas principal. +1 pour une bonne réponse cependant. – MickMalone1983
Il serait absolument inutile d'imbriquer une toile à l'intérieur d'une autre toile. La page ne voit que ce qui est à l'intérieur de la balise canvas
si le navigateur ne prend pas en charge le canvas
. Alors, faites tout ce que RobertC dit:
<canvas id="background">fallbacks/polyfills go in here...</canvas> <canvas id="foreground">.. or here, but not other canvases.</canvas>
- 1. html5 question de toile
- 2. html5 unités de toile
- 3. html5 enlever de la toile
- 4. html5 rouleau de toile
- 5. HTML5 toile barre de progression
- 6. Toile HTML5 alternative à Spritely?
- 7. html5 formes de toile remplir
- 8. toile HTML5 de transformation obliquité
- 9. Html5 Toile animations
- 10. html5 image de toile redimensionner
- 11. HTML5 TOILE dessiner l'image
- 12. bords doux html5 toile
- 13. HTML5 Toile Mouse coordonnées
- 14. HTML5 "Toile is null"
- 15. Toile HTML5 Méthode isPointInPath()
- 16. Sidescrolling avec toile HTML5
- 17. HTML5 Toile animation clearRect
- 18. Balise HTML5 pour Toile
- 19. Toile HTML5 - Coloriage Problème
- 20. multiple toile HTML5 superposant
- 21. Toile HTML5 Mouseover event
- 22. Traduction d'une toile html5
- 23. Html5 Toile overlay
- 24. Toile HTML5 drawImage()
- 25. HTML5 Toile avec wordpress
- 26. toile html5 dans Durandal
- 27. HTML5 Toile, GUI
- 28. HTML5 graphique en toile
- 29. HTML5 Toile: Coloriser l'image
- 30. HTML5 Toile Tileset animation
S'il vous plaît fournir plus de détails quant à ce que vous essayez d'accomplir réellement. – Phrogz