scroll - FabricJS Canvas,滚动父容器移动子点击区域

标签 scroll html5-canvas mousedown fabricjs

我正在使用 FabricJS 创建一个应用程序。我发现滚动父 div/容器会将对象的可选区域向右偏移,与滚动量直接相关。

因此,如果我有一个 1200x600 的 Canvas 和一个 600x600 的容器 div,并且我在 400、120 处向该 Canvas 添加一个矩形;当我滚动 200px 时,我无法单击矩形来选择它。相反,我必须将鼠标移动到 600、120(空白区域)才能获得横条并选择矩形。

不确定这是否已知,或者是否有解决方法 - 但我将不胜感激任何可能的帮助。

最佳答案

您必须修改 FabricJs 代码才能使其工作。 问题出在 getPointer 函数中,如果您在 all.js 中搜索它,您会注意到 kangax 的注释“此方法需要修复”。

解决方法可以用此函数替换

function getPointer(event) {
    // TODO (kangax): this method needs fixing
    return { x: pointerX(event) + document.getElementById("container").scrollLeft, y: pointerY(event) + document.getElementById("container").scrollTop };
}

其中“container”是 Canvas 的包装 div。这不太好,因为您必须输入准确的 id,但它可以工作。

希望这有帮助。

关于scroll - FabricJS Canvas,滚动父容器移动子点击区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9468401/

相关文章:

jquery - 处理 'mouseleave' 而 'mousedown'

html - 没有滚动条的滚动元素与CSS

javascript - 如果它有足够的宽度,则在准备好和滚动时更改类

android - 如果向下滚动列表,则在使用 ViewHolder 时应用程序崩溃

javascript - HTML5/Canvas onDrop 事件没有触发?

javascript - Chrome 的 HTML5 canvas 绘图问题

android - GridView onScrollPositionChanged?

javascript - 为什么我的 Canvas 只加载左上角的图像?

winforms - GMap.NET Windows Forms 用鼠标移动 map

javascript - 禁用上下文菜单和右键单击菜单