【发布时间】:2016-11-23 00:40:27
【问题描述】:
我可以为对象设置动画,然后添加mouse:over 事件。
var canvas = new fabric.Canvas('c');
var x1 = 5;
var y1 = 5;
var x2 = 100;
var y2 = 100;
var rect = new fabric.Rect({
width: 10,
height: 10,
left: x1,
top: y1,
stroke: '#000',
strokeWidth: 2,
fill: '#faa',
selectable: false
});
canvas.add(rect);
rect.animate({
'left': x2,
'top': y2
}, {
duration: 10000,
onChange: canvas.renderAll.bind(canvas),
onComplete: function() {
}
});
canvas.on('mouse:over', function (e) {
console.log('mouseover');
});
<canvas id="c"></canvas>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.6.3/fabric.min.js"></script>
但是,mouse:over 事件会继续从矩形的原始位置触发。动画完成后,mouse:over 事件将再次作用于动画对象。
是否可以在对象移动/动画时触发 mouse:over 事件?
【问题讨论】:
标签: javascript animation fabricjs mouseover