use*_*176 5 javascript signaturepad
我正在尝试在引导模式中使用签名板,我在 div 中有一个画布:
<div class="modal-body">
<div class='signature-container' >
<canvas id="signature"></canvas>
</canvas>
</div>
Run Code Online (Sandbox Code Playgroud)
在初始化时,我执行(coffeescript):
canvas = $("canvas#signature")[0]
signature_pad = new SignaturePad(canvas, backgroundColor: 'rgb(255, 255, 255)')
Run Code Online (Sandbox Code Playgroud)
我的画布 css 是(因为我希望画布填充 div)
宽度:100%;高度:100%;
一切正常,但“墨水”偏离了鼠标指针。当我第一次单击时,初始墨迹出现在鼠标指针的右侧和下方。鼠标移动得越远,垂直偏移就越远,与水平方向相同(即偏移看起来呈线性缩放)。我尝试在演示中实现调整大小功能,但 chrome 将 offsetWidth 计算为 0 并且画布只是缩小到 0x0。
有人知道我做错了什么吗?
我遇到了同样的问题,向画布添加 100% 的高度和宽度导致签名出现水平向右偏移。
这就是发生的事情: 签名问题的屏幕截图
在堆栈的其他地方找到了这个 -让画布与父级一样宽和高...... Phrogz 的答案是关键。
“3.画布上的宽度和高度属性指定要绘制的数据像素数(如图像中的实际像素),并且与画布的显示尺寸分开。”
他提供了这段 jQuery 代码,使画布与其父级一样宽和高:
var canvas = document.querySelector('canvas');
fitToContainer(canvas);
function fitToContainer(canvas){
// Make it visually fill the positioned parent
canvas.style.width ='100%';
canvas.style.height='100%';
// ...then set the internal size to match
canvas.width = canvas.offsetWidth;
canvas.height = canvas.offsetHeight;
}Run Code Online (Sandbox Code Playgroud)
我还想删除当您清除 sigpad 时出现的行...为此,我将这些选项添加到 jquery:
signaturePad = $('.sigPad').signaturePad({
drawOnly: true,
bgColour: '#FFF',
defaultAction: 'drawIt',
penColour: '#2c3e50',
lineWidth: 0,
});Run Code Online (Sandbox Code Playgroud)
最后一行 (lineWidth) 控制跨过 sigpad 的线。
快乐编码!
| 归档时间: |
|
| 查看次数: |
3427 次 |
| 最近记录: |