我已经在网站上实施了数字签名。在浏览器中,一切正常。切换到移动视图时会出现问题。在模拟器 Chrome 和移动设备中测试。由于某种原因,这条线被绘制在离光标一定距离的地方。这会导致在画布外部绘制线条,并且 signaturePad.isEmpty() 返回 false。结果是一个空签名。有人能遇到类似的吗?
问问题
1085 次
2 回答
0
我必须在使用 window.setTimeout 执行的方法中执行调整画布大小的逻辑。我只延迟了 50 毫秒,但到那时缩放总是正确的。
于 2020-02-24T21:37:42.530 回答
0
https://github.com/szimek/signature_pad#handling-high-dpi-screens
遵循此文档适用于我的应用程序。
function resizeCanvas() {
var ratio = Math.max(window.devicePixelRatio || 1, 1);
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
signaturePad.clear(); // otherwise isEmpty() might return incorrect value
}
window.addEventListener("resize", resizeCanvas);
resizeCanvas();
于 2018-08-07T20:00:41.400 回答