當我向組中添加一個不透明度小於1的圓時,其不透明度實際上會低於指定值。如果我不指定不透明度(即,不透明度= 1),則不會發生這種情況。這也不會發生在一個矩形。FabricJS:組中有圓圈不透明的bug?
這裏是重現此問題的代碼:
HTML
<canvas id="stage" width="400" height="300">
的JavaScript
var OPACITY = 0.65;
var FILL = '#fff';
var canvas = new fabric.Canvas('stage', {
backgroundColor: '#222'
});
/**
* Rectangles
* both appear to have the same color
*/
var rect1 = new fabric.Rect({
width: 40,
height: 40,
fill: FILL,
opacity: OPACITY,
left: 60,
top: 60
});
canvas.add(rect1);
var rect2 = new fabric.Rect({
width: 40,
height: 40,
fill: FILL
opacity: OPACITY,
});
var rect2Group = new fabric.Group([rect2], {
left: 120,
top: 60
});
canvas.add(rect2Group);
/**
* Circles
* the second circle is darker
*/
var circle1 = new fabric.Circle({
radius: 20,
fill: FILL,
opacity: OPACITY,
left: 60,
top: 120
});
canvas.add(circle1);
var circle2 = new fabric.Circle({
radius: 20,
fill: FILL,
opacity: OPACITY,
});
var circle2Group = new fabric.Group([circle2], {
left: 120,
top: 120
});
canvas.add(circle2Group);
這裏是JSFiddle。
如果你運行它,你可以看到第二個圓圈比第一個圓圈更暗,這意味着它的不透明度更低。
我做錯了什麼,或者這是一個錯誤? (可在1.2.0和1.3.0轉載。)
現在,我的解決方法是設置'FILL ='rgba(255,255,255,0.65)',並且根本不使用OPACITY。這樣,兩個圓圈(即有和沒有一組)看起來都是相同的。 – bladerunner