Pau*_*ond 1 javascript fabricjs
创建新的结构对象时,您可以指定它出现在画布上的位置。有没有办法将生成的对象附加到鼠标,然后将对象放置在点击(或触摸)上?
例如,生成出现在画布上的圆的方法。
var circle = new fabric.Circle({
radius: 20, fill: 'green', left: 100, top: 100
});
Run Code Online (Sandbox Code Playgroud)
更新对象的位置以匹配鼠标的位置并mouse:up克隆该对象并将其放置在画布上是相当容易的。
var canvas = new fabric.Canvas('c');
var mousecursor = new fabric.Circle({
left: 0,
top: 0,
radius: 5,
fill: '#9f9',
originX: 'right',
originY: 'bottom',
})
canvas.add(mousecursor);
canvas.on('mouse:move', function(obj) {
mousecursor.top = obj.e.y - mousecursor.radius;
mousecursor.left = obj.e.x - mousecursor.radius;
canvas.renderAll()
})
canvas.on('mouse:out', function(obj) {
// put circle off screen
mousecursor.top = -100;
mousecursor.left = -100;
canvas.renderAll()
})
canvas.on('mouse:up', function(obj) {
canvas.add(mousecursor.clone())
canvas.renderAll()
})Run Code Online (Sandbox Code Playgroud)
canvas {
border: 1px solid #ccc;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.3/fabric.js"></script>
<canvas id="c" width="600" height="600"></canvas>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1606 次 |
| 最近记录: |