首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >画布中的鼠标偏移[fabric.js]

画布中的鼠标偏移[fabric.js]
EN

Stack Overflow用户
提问于 2012-07-26 02:30:39
回答 5查看 5.6K关注 0票数 8

我已经阅读了3-5个关于鼠标偏移的主题,但我仍然不能理解哪里是乱七八糟的。

在我的例子中,60%的情况下一切都很好。另外40%的鼠标是偏移量。Demo here

有时对象位置与鼠标行为无关。(IE和Chrome的混乱程度最大)

我尝试过编辑样式表和父div,但是什么都没有。最糟糕的是:我看不到任何规律性。我将非常感谢任何人的帮助。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-26 09:45:15

这太不可思议了!我已经修复了这个bug。你永远不会相信我..。

在页面的顶部是这样的代码:

代码语言:javascript
复制
<div class="logo">
<a href="/"><img src="logo.png" alt="" /></a>
</div>

此代码与canvas没有合理的关系。这个类有简单的css:{float: left; margin: 10px 0 0 0;}

但出于某种原因,此代码强制在画布中进行鼠标偏移。我重写了这段代码,如下:

代码语言:javascript
复制
<div class="logo">
<a href="/" class="logoHref"></a><!--- image is in css bg --->
</div>

..。现在,一切都可以正常工作了。

我看不出这些事件之间有任何关联,但事实就是事实。对我来说那是非常艰难的一天..。

票数 1
EN

Stack Overflow用户

发布于 2013-05-26 11:23:59

您可以这样做:

代码语言:javascript
复制
canvas.on("after:render", function(){ canvas.calcOffset() });

我只有在创建画布之后才这样做。当没有调整大小事件时,这是临时调用。这就是bug出现的时候。

票数 16
EN

Stack Overflow用户

发布于 2012-08-14 10:14:35

由于页面上其他元素的定位,画布偏移值可能会改变。

您只需在画布中添加导致问题的元素或在代码中调用canvas.renderAll()方法后调用canvas.calcOffset()

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11656272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档