【问题标题】:How do you dynamically set clientHeight and clientWidth for an HTML5 canvas in angular 8?如何为 Angular 8 中的 HTML5 画布动态设置 clientHeight 和 clientWidth?
【发布时间】:2020-03-11 21:28:28
【问题描述】:

我有一个画布,可以根据从数据库返回的信息动态显示许多框。最初,我手动设置了画布的高度、宽度、clientHeight 和 clientWidth,并且效果很好。但是,我想让它随长度动态缩放。最初,我有:

<canvas class="theCanvas" width="700" height="2000" clientWidth="700" clientHeight="2000" #theCanvas (click)=doClick($event)></canvas>

编译并运行良好。但是,当我将其更改为以下内容时,出现错误。 CanvasHeight 和 canvasWidth 是我的 ts 文件中的公共变量:

<canvas class="theCanvas" width="{{canvasWidth}}" height="{{canvasHeight}}" clientWidth="{{canvasWidth}}" clientHeight="{{canvasHeight}}" #theCanvas (click)=doClick($event)></canvas>

它在 VSCode 中构建没有错误,但我的浏览器抛出 Can't bind to 'clientWidth' since it isn't a known property of 'canvas' 以及 clientHeight 的相同错误。显然画布确实有这些元素,因为添加这些定义会改变缩放比例,而不是它们不存在时,所以我不确定问题是什么。

我在本地运行 Angular 8.3.6,在全球运行 8.3.18,由于我不是负责更新这些内容的人,因此无法更改。

【问题讨论】:

    标签: angular html5-canvas


    【解决方案1】:

    画布的宽度和客户端宽度不能相同。

    width - 没有填充的画布的内部宽度

    clientWidth - 包含内边距但不包括边框的内部内容宽度

    这也适用于heightclientHeight

    【讨论】:

      猜你喜欢
      • 2012-05-22
      • 2012-07-30
      • 2015-12-03
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      相关资源
      最近更新 更多