微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Fabric.js 画布选择位置不正确

如何解决Fabric.js 画布选择位置不正确

我正在制作一个网页,我需要能够使用光标在画布上绘制矩形。 我正在使用 Fabric.js 来创建和操作画布。

我遇到的问题是,在画布上选择时,选择并不完全在光标位置上。这导致很难在所需位置绘制矩形。

这是一个最小的生殖示例:

<html>
<head>
    <style>
        #image_canvas {
            border: 10px solid #efefef;
        }
    </style>
</head>
<body>
    <canvas id="image_canvas"></canvas>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.1.0/fabric.min.js"></script>
    <script>
        var canvas;

        $(document).ready(function () {
            canvas = new fabric.Canvas("image_canvas");
        });
    </script>
</body>
</html>

https://jsfiddle.net/0uc6rLhg/

这是发生了什么:

enter image description here

这就是我想要的:

enter image description here

如果有人能告诉我我做错了什么(或我没有做什么),我会很高兴!

解决方法

如您所见,不需要的偏移量与您为画布选择的边框尺寸非常相似,对吗?似乎它用于计算 Fabric 库中的画布坐标。所以我建议你不要在画布元素上放置任何边框。如果你真的想要一个边框,只需用另一个 div 包裹你的画布并在那里放置一个边框。问题解决了。

.canvas-wrapper {
    border: 10px solid #efefef;
    display: inline-block;
}

示例:https://jsfiddle.net/smajl/2er0kvoq/1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。