这是 KineticJS 的一个实验,它的目标是在调整窗口大小时简单地将对象保持在屏幕中心。
它工作正常,只是它不会在初始调整大小事件处理程序调用时使对象(一个圆圈)居中。当我开始调整大小 - 并继续这样做 - 圆圈居中。但最初,圆圈从屏幕的左上角 (0,0) 开始。
$(document).ready( function(){
$(window).resize(onResize);
var stage = new Kinetic.Stage({
container: 'container',
width: $(container).width(),
height: $(container).height()
});
var layer = new Kinetic.Layer();
var circle = new Kinetic.Circle({ radius: 70, fill: 'red' });
layer.add(circle);
stage.add(layer);
function onResize(){
$(container).css('height', window.innerHeight - 20);
stage.setWidth($(container).width());
stage.setHeight($(container).height());
updatePosition();
}
function updatePosition(){
circle.setPosition(stage.getWidth() / 2, stage.getHeight() / 2);
}
// initial call
onResize();
});
关于为什么会发生这种情况的任何线索?谢谢