2013-04-04 126 views
3

我想KineticJS,看看这个例子:KineticJS:设置宽度基于百分比

var stage = new Kinetic.Stage({ 
    container: 'container', 
    width: 500, 
    height: 200 
}); 

我的问题是如何根据百分比来设置宽度。我想要这样的东西:

var stage = new Kinetic.Stage({ 
    container: 'container', 
    width: 100%, 
    height: 200 
}); 

任何机会?谢谢!

回答

5

百分比值不起作用(我试过了)。当你在JavaScript的工作,你可以很容易地获取窗口的宽度和计算占用的空间要求的比例所需要的像素数:

var stage = new Kinetic.Stage({ 
    container: 'container', 
    width: (window.innerWidth/100) * 80, // 80% width of the window. 
    height: 200 
}); 

如果要调整阶段,当窗口调整大小后,您可以使用window.onresize事件。

window.onresize = function(event) { 
    stage.setWidth((window.innerWidth/100) * 80); // 80% width again 
} 

JSFiddle of resize code

+0

是,这是一个解决方案加载窗口时,但我想要的东西,比如CSS 100%(自动调整)。 – 2013-04-04 15:25:41

+0

已编辑我的答案。 – 2013-04-04 15:43:44

+0

知道这一点,但我担心与此表现。看起来KineticJS不支持它。使用基于px的大小将画布添加到DOM – 2013-04-04 15:50:21