簡體   English   中英

Fabric.js canvas 選擇位置不正確

[英]Fabric.js canvas selection location incorrect

我正在制作一個網頁,我需要能夠使用 cursor 在 canvas 上繪制矩形。 我正在使用 Fabric.js 創建和操作 canvas。

我遇到的問題是,在 canvas 上選擇時,選擇並不完全在 cursor position 上。 這導致在所需位置上繪制矩形非常困難。

這是一個最小的繁殖示例:

<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/

這是發生的事情: 在此處輸入圖像描述

這就是我想要的: 在此處輸入圖像描述

如果有人能告訴我我做錯了什么(或者我沒有做什么),我會非常高興!

如您所見,不需要的偏移量與您為 canvas 選擇的邊框尺寸可疑地相似,對吧? 似乎它用於 Fabric lib 中 canvas 坐標的計算。 因此,我建議您不要在 canvas 元素上放置任何邊框。 如果你真的想要一個邊框,只需用另一個 div 包裹你的 canvas 並在那里放一個邊框。 問題解決了。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM