在创建时设置画布宽度/高度
Setting canvas width / height on creation
所以我尝试在jQueryUI小部件中创建一个画布对象,该对象具有用户指定的宽度和高度。然后用渐变填充画布。
这样做不起作用,fillrect的宽度太窄了
this.canvas = $("<canvas/>", { width: this.options.width, height: this.options.height }).appendTo(this.element);
但是这样做是有效的
this.canvas = $("<canvas width='""+ this.options.width + "'" height='""+ this.options.height + "'"/>").appendTo(this.element);
这两种方法的区别是什么?
在第二种情况下,画布元素的宽度和高度将作为属性添加,这是设置画布宽度和高度的正确方法。
在第一种情况下,画布的宽度和高度将被设置为css样式。使用css设置画布的宽度和高度不会设置画布元素的实际宽度和高度,它只会给出原始画布的缩放效果(这个大小不会被认为执行内部计算)。
$('<element/>', {properties})
的一个怪癖是高度和宽度属性被应用为样式,而不是属性。
你可以做你想做的:
$("<canvas/>").attr({ width: this.options.width, height: this.options.height }).appendTo(this.element);
JSFiddle: http://jsfiddle.net/TrueBlueAussie/LWB2Q/
回答你实际提出的问题,第一个版本应用属性作为样式。这仅限于特定的jQuery属性,例如你不能设置{'background-color': 'green'}。
第二个版本将height
和width
设置为属性,这是您需要的,但更好的方法是在我的示例中显示。
一般建议:为元素串联字符串总是一个坏主意(最好避免)。
相关文章:
- 获取iframe内容的宽度-高度
- 可以't参见画布中的窗口宽度/高度
- 远距离变换元素的宽度/高度(以像素为单位)
- 如何在浏览器宽度/高度变化时动态调整图像网格的大小
- 如何在Three.js中更改导入对象的宽度/高度
- 使用JavaScript(可能是CSS)在HTML5画布内显示特定宽度/高度的完整图像大小(100%宽度/高度)
- jQuery 丰元辰裁剪器插件 - getImageData() 无法获取宽度/高度
- Microsoft 边缘窗口.open() 不支持第二个弹出窗口的宽度高度
- 如何在调用 setSource() 函数后重绘或更新 extjs 网格的宽度/高度
- 表单“提交”按钮文本(和宽度/高度/值)在按键时消失或更改BTN值
- 根据浏览器的宽度/高度在页面上进行自动缩放,就像 Firefox 所做的 CTR+- 一样
- 以编程方式更改 jQuery File Upload (blueimp) 的预览最大宽度/高度
- CKFinder 如何在选择图像时获取尺寸 URL 和尺寸(宽度/高度)(文件:选择)
- 如果我在服务器上预渲染 D3JS 图表,将如何计算它们的宽度/高度
- Html 画布:宽度/高度属性和宽度/高度样式之间的差异
- 使用格式化文本获取 DIV 或跨度的动态宽度高度
- jQuery获取IMG大小并根据宽度/高度比例更改其CSS属性
- 使用 Javascript 更改图像宽度/高度
- JQuery - 同时设置css和实际宽度/高度宽度一个函数
- 是否可以从内部更改iframe的宽度/高度