使用KineticJS,发现父div缩放比例后,放置在画布中的事件被禁用。
请看这里的情况。
首先,您可以在红色圆圈上移动鼠标。然后弹出窗口将显示。然后,请按下按钮使圆圈变小。然后,您可以再次将鼠标移动到新的小圆圈。你会看到什么都没有发生。
HTML
<div id="wrap" style="width:200px;height:200px">
<div id="container"></div>
</div>
<input type="button" value="make it 50%" onClick="document.getElementById('container').style.zoom = '0.5';">
JS
var stage = new Kinetic.Stage({
container: 'container',
width: 200,
height: 200
});
var layer = new Kinetic.Layer({
x: 100,
y: 100
});
var arc = new Kinetic.Shape({
drawFunc: function(canvas) {
var ctx = canvas.getContext();
ctx.fillStyle = "rgb(255, 0, 0)";
ctx.beginPath();
ctx.lineWidth = 10;
ctx.arc(50, 50, 40, 0, 2*Math.PI, false);
ctx.closePath();
ctx.fill();
ctx.stroke();
canvas.fillStroke(this);
}
});
arc.on('mouseover', function() {
alert("mouseover detected");
});
layer.add(arc);
stage.add(layer);
这是一个错误吗?