3 votes

HTML5 : Le cercle Canvas est ovale à cause de la largeur et de la hauteur.

var qcanvas = $('#canvas');
var canvas = ctl_canvas[0];
var context = canvas.getContext('2d');
qcanvas.css('border', '1px solid black');
qcanvas.css('width', 400);
qcanvas.css('height', 75);

Lorsque j'utilise la méthode ci-dessus qcanvas.css('width', 400); et les css de hauteur respectifs, le réel La hauteur de la toile n'est pas celle que j'ai définie à l'aide des fonctions jquery. Quelqu'un sait-il comment je peux ne pas utiliser canvas.width = 400; et utiliser les fonctions propery jquery ?

6voto

Alnitak Points 143355

En .width y .height d'un canevas sont indépendantes des propriétés CSS du même nom.

Les propriétés CSS définissent la taille visible, mais les propriétés de l'élément définissent l'espace de coordonnées.

Vous devrait définir directement les propriétés de largeur et de hauteur :

qcanvas.width = 400;
qcanvas.height = 75;

L'idéal est de définir les propriétés CSS de la même manière, ce qui est de toute façon la valeur par défaut, sauf modification spécifique.

Cela permet de s'assurer que vos systèmes de coordonnées sont cohérents. S'ils ne sont pas identiques, le navigateur appliquera une mise à l'échelle pour passer d'un système de coordonnées à l'autre, et vous devrez également appliquer votre propre mise à l'échelle pour convertir les coordonnées d'événements en coordonnées de pixels.

0voto

Znarkus Points 5025
qcanvas.css('width', '400px');
qcanvas.css('height', '75px');

Vous devez spécifier px .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X