2017-02-06 16 views
0

スタイルを画像のスタイルとして設定するのに役立ちます。数日間、私はオプションを試しますが、問題の解決方法を理解していません。fabric.jsでスタイルを設定する方法

enter image description here

var rect = new fabric.Rect({ 
    left: 150, 
    top: 200, 
    originX: 'left', 
    originY: 'top', 
    width: 150, 
    height: 120, 
    angle: -10, 
    fill: 'rgba(255,0,0,0.5)', 
    transparentCorners: false 
    }); 

答えて

1

VINET、

ちょうどイベントのマウスを追加します。上とマウス:

canvas.on('mouse:over', function(e){ 
    if (e.target.type == 'rect'){ 
    e.target.set({strokeWidth: 5, stroke: 'red'}); 
    } 
    canvas.renderAll(); 
}); 

canvas.on('mouse:out', function(e){ 
    canvas.forEachObject(function(o){ 
    o.set({strokeWidth: 0}); 
    }); 
    canvas.renderAll(); 
}); 

チェックfiddle

アウトUPDATE:

あなたが個別に各側面を強調したい場合は、ここのような長方形のために、独自のストロークを作成する必要が

:その後

function createPointsForLines(rectangle){ 
    let points = [];; 
    var coordinates = rectangle.oCoords; 
    points.push([coordinates.tl.x, 
     coordinates.tl.y, 
     coordinates.tr.x, 
     coordinates.tr.y]); 
    points.push([coordinates.tr.x, 
     coordinates.tr.y, 
     coordinates.br.x, 
     coordinates.br.y]); 
    points.push([coordinates.br.x, 
     coordinates.br.y, 
     coordinates.bl.x, 
     coordinates.bl.y]); 
    points.push([coordinates.bl.x, 
     coordinates.bl.y, 
     coordinates.tl.x, 
     coordinates.tl.y]); 
    return points; 
} 

ラインとしてこれらのストロークを描く:

for (var i in points){ 
    var line = new fabric.Line(points[i],{ 
    originX: 'center', 
    originY: 'center', 
    strokeWidth: 10, 
    stroke: 'rgba(255,0,0,0)', 
    transparentCorners: false 
    }); 

canvas.add(line); 
} 

更新fiddle

+0

返信いただきありがとうございます。 この方法を試しましたが、それはあまり好きではありません。 1つのフレームのみを選択する必要があります。 – VINET

+0

更新された投稿 – Observer

+0

をご覧ください。このためにこの問題を解決する予定です。しかし、この解決策は最適ではありません。このソリューションでは、追加の計算が必要なオブジェクトにスコープを関連付ける必要があります。これらのコントロールがライブラリ内のどこにあるのかわからないのですか?彼らはどこかで変更が可能で、問題は解決されていると思います。 – VINET

関連する問題