调整具有css高度和宽度的舞台的大小

时间:2014-07-13 22:45:10

标签: javascript css kineticjs

我希望以两种方式在定义的显示区域(高度和宽度)上使用kineticJS:

- 在我的javascript中,我想要使用任意尺寸,放置物品等。 - 在我的CSS中,我想要其他维度,独立于JS,代表真实的显示。

这有几个优点:JS尺寸可以小于真实显示器,使计算更轻;或CSS尺寸可以轻松地适应用户屏幕尺寸,而不会影响脚本部分......

在vanilla JS中很容易做到,使用画布的尺寸高度和宽度来表示JS尺寸,CSS高度和宽度用于显示尺寸。

HTML:

<canvas height="10" width="10" id="c"></canvas>

CSS:

#c {
        height:400px;
        width:400px;
    }

示例:http://jsfiddle.net/5fW8f/2/

但是对于KineticJS,我真的无法做同样的事情。当我这样做宽度容器时,容器本身也是大小调整,但Stage不是(使用阶段或容器的尺寸)。

HTML:

<div height="100" width="100" id="c"></div>

相同的CSS。

示例:http://jsfiddle.net/46JCa/

那么,有没有办法用KineticJS做到这一点?

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是

stage.setScale(scale);

其中,比例是您希望按比例缩放所有内容的比率。因此,您只需计算一次,设置它,然后就完成了(除非您使用多个阶段;然后您需要设置所有阶段)。

有关示例,请参阅http://www.html5canvastutorials.com/labs/html5-canvas-multi-touch-scale-stage-with-kineticjs/

它很快,我经常使用这个技巧。实际上,您可以根据需要单独缩放任何对象,也可以直接在画布上绘制。