![](/img/trans.png)
[英]How to get objects correctly placed when zoomed in on fabricjs canvas?
[英]fabricjs smaller object selection when placed over larger objects
我正在使用fabric.js,當我將較小的對象(高度和寬度或縮放為較小的對象)放在較大的對象上時,單擊時無法選擇較小的對象
我什至嘗試了以下方法,它解決了我的可選問題,但是缺點是我失去了在邊界角的縮放比例,實現以下步驟后無法縮放對象。
您可以在以下urlhttp://fabricjs.com/events/上嘗試相同操作,檢查所附的屏幕截圖,我已縮放了紅色正方形,並在其上放置了一個較小的綠色正方形。 完成此放置后,我將無法選擇綠色方塊。
canvas.on('mouse:up',function(e){
canvas.setActiveObject(canvas.item(e.target));
});
由於“優化”,它是一個已知問題https://github.com/kangax/fabric.js/issues/1188 。
我通過注釋掉_searchPossibleTargets中的第一個if語句來解決它,
fabric.util.object.extend(fabric.Canvas.prototype, {
_searchPossibleTargets: function(e) {
// Cache all targets where their bounding box contains point.
var target,
pointer = this.getPointer(e);
/*
if (this._activeObject && this._checkTarget(e, this._activeObject, pointer)) {
this.relatedTarget = this._activeObject;
return this._activeObject;
}
*/
var i = this._objects.length;
while(i--) {
if (this._checkTarget(e, this._objects[i], pointer)){
this.relatedTarget = this._objects[i];
target = this._objects[i];
break;
}
}
return target;
}
});
if的目的是返回鼠標在其中的當前活動對象,而與對象順序無關。 如果您有大量對象,這是一種優化,並且可以防止您檢查所有對象。
您正在使用哪個版本? 我將版本1.4.0更新為1.4.4時遇到了相同的問題。 我不得不回到1.4.0。 也許版本1.4.0將為您工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.