Ich habe nur versucht, die folgenden in jQuery zu tun:Erstellen eines Canvas-Element und Einstellung seiner Breite und Höhe Attribute mit jQuery
var newCanvas = $('<canvas/>',{'width':100,'height':200,'class':'radHuh'});
$(body).append(newCanvas);
Dies funktioniert (Art) und erzeugt das folgende Markup:
<canvas style="width:100px; height:200px;" class="radHuh"></canvas>
Wie die meisten von Ihnen vielleicht wissen canvas
Elemente mögen CSS-Dimensionen nicht wirklich, aber erwarten ein Attribut width und height, so dass diese Objekt-Erstellung für mich fehlgeschlagen ist.
Ich weiß, ich könnte nur tun:
var newCanvas = $('<canvas/>',{'class':'radHuh'}).attr({'width':100,'height':200});
statt, aber ich habe mich nur gefragt dennoch, wenn es irgendeine Art und Weise ist jQuery zu sagen, dass width
und height
sollte als Attribute behandelt werden, wenn das Element über $('element',{attributes})
Schaffung und nicht als CSS?
Um klar zu sein, '
@Phrogz deshalb schrieb ich "nicht wirklich mag" ... In jedem Fall denke ich, dass 99% der Canvas-Elemente diese Attribute benötigen, da sie nicht mit dem Standard-Verhältnis übereinstimmen und so weiter. – m90
@Phrogz, ja, ok, aber um klar zu sein, brauchen Sie ein wenig einfache Mathematik, um es richtig in normalem CSS zu skalieren. Ansonsten wird die "Leinwand" (wie du sagtest) wie ein normales "img" -Tag funktionieren, aber ** wird NICHT proportional skalieren ** und die meisten Benutzer (wie sie es haben) haben Probleme beim tatsächlichen Verständnis - genau diese Quasi/Ähnlichkeit. –