【问题标题】:Setting the canvas width and height with css shifts the pen使用 css 设置画布宽度和高度会移动笔
【发布时间】:2016-11-08 16:25:02
【问题描述】:

当我使用 css 设置画布宽度和高度时,笔正在移动。在浏览器(铬)中放大/缩小后,笔不再移动。 我正在使用字面上的画布小部件,并希望使画布适合其父 div。初始化画布后,我使用 jquery css 函数设置画布的宽度/高度。但是我的笔不在同一个坐标上。在当前浏览器中滚动或滚动后,笔位于鼠标指针所在的坐标处。谁能帮帮我?

$('.lc-drawing').find('canvas').css({'width':containerWidth, 'height':containerWidth});

【问题讨论】:

  • 你能分享你笔的链接吗?

标签: javascript css canvas resize


【解决方案1】:

使用画布时,您通常会发现通常需要实际设置宽度和高度属性,而不是 css/样式的宽度和高度。

我与您共享代码的示例是尝试:

$('.lc-drawing').find('canvas').attr('width', containerWidth).attr('height', containerWidth);

您能否确认您打算为画布的高度和宽度设置“containerWidth”?

关于调整画布大小,请考虑添加一些像这样的响应式 CSS,以保持位置值,但要针对移动设备调整大小。

canvas {
  width: 100%;
  height: auto;
}

您仍然需要画布本身的宽度和高度属性。

【讨论】:

  • 非常感谢!在花了很多时间之后(在发布这个问题之前),我现在已经解决了我的问题。目标是,我想覆盖已经设置了“样式”属性的画布。我试图覆盖样式属性值,并且我也使用 attr() 函数设置了宽度和高度。我的错误如下:我必须首先删除任何包含画布宽度和高度的内联样式属性。所以在删除它们之后,我可以设置高度和宽度属性并正确调整画布大小。
  • 但问题仍然存在于移动模式。我在我的手机甚至 chrome 开发人员工具(移动模式)上对其进行了测试。笔还在移动。你能帮忙解决这个问题吗?
  • 我已经添加了一些 CSS 来辅助移动模式下的画布 - 在我上面的帖子中,希望这对您的解决方案有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多