javascript - 使用 css 更改画布的宽度
问题描述
我正在使用我在代码笔中找到的这个JavaScript 签名板。我可以使用 HTML 设置画布的宽度
<canvas id="signature-pad" width="600" height="200"></canvas>
我可以随心所欲地改变宽度。但是,当我使用 CSS 更改宽度时,width:80vw
即使画布宽度增加,我也不能再在那里登录,或者鼠标指针和签名指针位于不同的位置。我不知道如何解决这个问题。
解决方案
您可以在 SignaturePad ( codepen fork ) 的构造函数中添加类似的内容:
canvas.width = canvas.scrollWidth;
canvas.height = canvas.scrollHeight;
window.addEventListener('resize', function() {
canvas.width = canvas.scrollWidth;
canvas.height = canvas.scrollHeight;
});
只有当您的画布绘图宽度和高度等于画布元素的宽度和高度时,鼠标位置的计算才能正常工作。
推荐阅读
- winapi - 通过 CancelIoEx 取消 I/O 时,GetQueuedCompletionStatus 返回什么?
- java - 如何使用 Java 中的 actionlistener 按字母顺序对联系人列表进行排序?
- python - Jaxlib pip 安装失败
- asp.net-core - MVC Core. RedirectToAction(action, controller, routeValues, fragment). Access fragment parameter value in target Action
- java - ByteArrayOutputStream 写入 IndexOutOfBoundsException
- julia - 在 Julia 中检查对角支配矩阵
- r - gganimate 日期和计数的线图
- delphi - 程序 NEW 导致分段错误
- python - 将屏幕空间转换为世界空间以在 python 中创建点云
- c++ - 没有位集/向量的简单解码器(隐写术)