使用画布调整大小's的id
Resizing using the Canvas's id?
您可以使用画布id的html中的样式将画布调整为页面宽度吗?
然后在画布的js中,只根据当前画布的大小调整监听器的大小?
我有很多变量和监听器被硬编码,只是想知道解决这个问题的最快方法是什么:)
首先,一个好的开始不是采用整个页面宽度,而是采用div
容器。这样,如果你最终把你的应用程序放在网站或其他地方,你的代码就会适应任何容器。如果你希望它是整页,这个容器可以是100%的宽度/高度绝对值,没有填充/边距。
还请注意,画布有两种尺寸:
- HTML大小,即您将"以编程方式"绘制的大小
- CSS大小,即它将显示的大小,与其他大小无关(它将调整它的大小,导致潜在的失真)
基于此,您可以使用jquery $("#myID").width()
或height()
知道元素的屏幕宽度,这也适用于画布。基于此,您可以在html和/或css中设置任意大小:
$("#myCanvas").width = 400; // The size you will draw on
$("#myCanvas").css('width', '800'); // The size it will be displayed (2x scale in X in that case)
然后,对于调整大小,您有多种解决方案:
- CSS完全拉伸:您可以使用您想要编码的任何大小的画布,然后在CSS中调整其大小以使用整个页面宽度,也就是说,基本上将CSS设置为100%宽/高
- 使用纵横比进行CSS拉伸:我喜欢的解决方案,包括在CSS中调整画布大小,但保持原始应用程序的纵横比(并在屏幕的其余部分设置黑色边框,就像在大屏幕电影中一样)
- 纯画布调整大小:这种方法不会破坏图形,但它会让你认为所有的绘图都可能有任何大小,这是一个巨大的成本。您将不得不根据屏幕大小乘以所有绘图的大小和位置,而不是使用由浏览器调整大小的固定大小画布,这可能会非常无聊,如果在开发过程中不尽快考虑,也会产生问题
举个例子,这里是我的画布管理器,它调整了CSS纵横比的大小。它没有文档记录,可能不适合您的需要,但它可以给您一些想法
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- difference between '$(<%= DDL.ID %>) & $('
- 调整窗口大小时,可拖动的对象会出现在容器外部
- ExtJS——在展开/折叠时调整面板高度
- 使用Javascript获取所选选项ID
- 根据id将json数组组合为一个json数组
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 对id以某个字符串开头的元素进行计数
- 如果元素's的ID以数字开头
- 自动调整谷歌使用位置id映射多个标记
- 如何调整chromeOptions缩放级别而不必担心需要传入此id
- 获取同级的 name 属性,使用它来调整具有等效 ID 的元素的值
- 如何获取当前可拖动和可调整大小的 id
- 祖尔布基金会均衡器在阿贾克斯之后调整大小
- 如何根据单击对象的id调整变量
- 使用画布调整大小's的id
- Javascript的滚动大小调整ID与最小值首先应用
- 使用jquery调整HTML对象与动态生成的id大小
- 如果Dgrid的id以数字开头,则Dgrid列调整大小,隐藏,重新排序属性会产生错误