【发布时间】:2014-02-26 07:44:25
【问题描述】:
我只是想在 jQuery 中执行以下操作:
var newCanvas = $('<canvas/>',{'width':100,'height':200,'class':'radHuh'});
$(body).append(newCanvas);
这是有效的(有点)并生成以下标记:
<canvas style="width:100px; height:200px;" class="radHuh"></canvas>
你们大多数人可能都知道canvas 元素并不真正喜欢 CSS 尺寸,但需要一个宽度和高度属性,所以这个对象创建对我来说失败了。
我知道我可以做到:
var newCanvas = $('<canvas/>',{'class':'radHuh'}).attr({'width':100,'height':200});
相反,但我只是想知道是否有任何方法告诉 jQuery 在通过 $('element',{attributes}) 创建元素时,width 和 height 应该被视为属性而不是 CSS?
【问题讨论】:
-
明确一点,
<canvas>元素“喜欢”CSS 宽度和高度就好了;与 HTML<img>一样,通过 CSS 设置显示尺寸会放大/缩小位图。<canvas>高度和宽度属性/属性就像在 Photoshop 中更改图像的大小,设置源图像中的实际像素数。 -
@Phrogz 这就是我写“不太喜欢”的原因...无论如何,我猜 99% 的画布元素都需要这些属性,因为它们与默认比例不匹配,并且以此类推。
-
@Phrogz ,是的,好的,但要清楚,你需要一些简单的数学才能在纯 css 中正确缩放它。否则
canvas将像普通的img标签一样(如您所说),但它会不按比例缩放,并且大多数用户(正如他们所拥有的那样)在实际理解方面存在问题 - 正是这个准/相似性。
标签: javascript jquery canvas html