5

我在调整 Raphael.js 中的画布大小时遇到​​了困难。我以为我可以简单地使用:

var paper = Raphael("paper", 100, 100);

这将使用 ID“paper”创建一个宽度和高度为 100 像素的画布。但是,当我尝试这样做时,画布不会使用这些设置进行初始化。我正在使用 Raphael.js 网站上的一些免费图标,我想知道如何更改图标的大小?我是否也必须使用转换功能?如果可以的话,请创建一个 jsfiddle 示例。

提前致谢。

抱歉,如果我没有很好地解释自己,但 Raphael.js 对我来说是全新的。

编辑:

我尝试了您的建议,但无济于事。这是我正在处理的代码。也许我有冲突或什么的。有任何想法吗?

<!DOCTYPE html>
<html>
    <head>
        <title>Logo Experiment</title>
        <link rel="stylesheet" href="css/960_16_col.css"/>
        <link rel="stylesheet" href="css/stylesheet.css"/>
        <script src="js/jquery.min.js"></script>
        <script src="js/raphael-min.js"></script>
        <script src="js/script.js"></script>
    </head>
    <body>
        <div class="container_16">  
            <div class="grid_4">
                <div id="design"></div>
            </div>
            <div class="grid_2">
                <div class="arrow"></div>
            </div>
            <div class="grid_4">
                <div id="build"></div>
            </div>
            <div class="grid_2">
                <div class="arrow"></div>
            </div>
            <div class="grid_4">
                <div id="deliver"></div>
            </div>  
            <div class="clear"></div>    
        </div>
    </body>
</html>
window.onload = function() {
    var design = Raphael("design");
    design.path("M24.359,18.424l-2.326,1.215c0.708,1.174,1.384,2.281,1.844,3.033l2.043-1.066C25.538,20.822,24.966,19.652,24.359,18.424zM19.143,14.688c0.445,0.84,1.342,2.367,2.274,3.926l2.414-1.261c-0.872-1.769-1.72-3.458-2.087-4.122c-0.896-1.621-1.982-3.108-3.454-5.417c-1.673-2.625-3.462-5.492-4.052-4.947c-1.194,0.384,1.237,4.094,1.876,5.715C16.73,10.147,17.991,12.512,19.143,14.688zM26.457,22.673l-1.961,1.022l1.982,4.598c0,0,0.811,0.684,1.92,0.213c1.104-0.469,0.81-1.706,0.81-1.706L26.457,22.673zM24.35,15.711c0.168,0.339,2.924,5.93,2.924,5.93h1.983v-5.93H24.35zM18.34,15.704h-4.726l-3.424,5.935h11.66C21.559,21.159,18.771,16.479,18.34,15.704zM3.231,21.613l3.437-5.902H2.083v5.93h1.133L3.231,21.613zM15.048,10.145c0-0.93-0.754-1.685-1.685-1.685c-0.661,0-1.231,0.381-1.507,0.936l2.976,1.572C14.97,10.725,15.048,10.444,15.048,10.145zM14.343,12.06l-3.188-1.684L9.62,13.012l3.197,1.689L14.343,12.06zM3.192,26.886l-0.384,1.108v0.299l0.298-0.128l0.725-0.896l2.997-2.354l-3.137-1.651L3.192,26.886zM9.02,14.044l-4.757,8.17l3.23,1.706l4.728-8.186L9.02,14.044z").attr({fill: "#666", stroke: "#000"});

    var build = Raphael("build");
    build.path("M28.537,9.859c-0.473-0.259-1.127-0.252-1.609-0.523c-0.943-0.534-1.186-1.316-1.226-2.475c-2.059-2.215-5.138-4.176-9.424-4.114c-1.162,0.017-2.256-0.035-3.158,0.435c-0.258,0.354-0.004,0.516,0.288,0.599c-0.29,0.138-0.692,0.147-0.626,0.697c2.72-0.383,7.475,0.624,7.116,2.966c-0.08,0.521-0.735,1.076-1.179,1.563c-1.263,1.382-2.599,2.45-3.761,3.667l0.336,0.336c0.742-0.521,1.446-0.785,2.104-0.785c0.707,0,1.121,0.297,1.276,0.433c0.575-0.618,1.166-1.244,1.839-1.853c0.488-0.444,1.047-1.099,1.566-1.178l0.949-0.101c1.156,0.047,1.937,0.29,2.471,1.232c0.27,0.481,0.262,1.139,0.521,1.613c0.175,0.324,0.937,1.218,1.316,1.228c0.294,0.009,0.603-0.199,0.899-0.49l1.033-1.034c0.291-0.294,0.501-0.6,0.492-0.896C29.754,10.801,28.861,10.035,28.537,9.859zM13.021,15.353l-0.741-0.741c-3.139,2.643-6.52,5.738-9.531,8.589c-0.473,0.443-1.452,1.021-1.506,1.539c-0.083,0.781,0.95,1.465,1.506,2c0.556,0.533,1.212,1.602,1.994,1.51c0.509-0.043,1.095-1.029,1.544-1.502c2.255-2.374,4.664-4.976,6.883-7.509c-0.312-0.371-0.498-0.596-0.498-0.596C12.535,18.451,11.779,17.272,13.021,15.353zM20.64,15.643c-0.366-0.318-1.466,0.143-1.777-0.122c-0.311-0.266,0.171-1.259-0.061-1.455c-0.482-0.406-0.77-0.646-0.77-0.646s-0.862-0.829-2.812,0.928L7.44,6.569C7.045,6.173,7.203,4.746,7.203,4.746L3.517,2.646L2.623,3.541l2.1,3.686c0,0,1.428-0.158,1.824,0.237l7.792,7.793c-1.548,1.831-0.895,2.752-0.895,2.752s0.238,0.288,0.646,0.771c0.196,0.23,1.188-0.249,1.455,0.061c0.264,0.312-0.196,1.41,0.12,1.777c2.666,3.064,6.926,7.736,8.125,7.736c0.892,0,2.021-0.724,2.948-1.64c0.925-0.917,1.639-2.055,1.639-2.947C28.377,22.567,23.704,18.309,20.64,15.643z").attr({fill: "#666", stroke: "#000"});

    var deliver = Raphael("deliver");
    deliver.path("M17.078,22.004l-1.758-4.129l-2.007,4.752l-7.519-3.289l0.174,3.905l9.437,4.374l10.909-5.365l-0.149-4.989L17.078,22.004zM29.454,6.619L18.521,3.383l-3.006,2.671l-3.091-2.359L1.546,8.199l3.795,3.048l-3.433,5.302l10.879,4.757l2.53-5.998l2.257,5.308l11.393-5.942l-3.105-4.709L29.454,6.619zM15.277,14.579l-9.059-3.83l9.275-4.101l9.608,3.255L15.277,14.579z").attr({fill: "#666", stroke: "#000"});

    $('.arrow').each(function(i) {
        arrow = Raphael($(this)[0]);
        arrow.path("M10.129,22.186 16.316,15.999 10.129,9.812 13.665,6.276 23.389,15.999 13.665,25.725z").attr({fill: "#666", stroke: "#000"});
    });
};
#design {
    width: 100px;
    height: 100px;
}
4

1 回答 1

7

要在标题中回答您的确切问题,您可以使用paper.setSize(width, height)

来自 Raphael 文档:

在此处输入图像描述

你的其他问题有不同的答案。

var paper = Raphael("paper", 100, 100);要求id="paper"您的页面上已有一些 DOM 元素。该 DOM 元素的宽度和高度应足以容纳您的画布(在本例中为 100x100)。或者,您可以省略宽度和高度,它将采用容器的宽度和高度(非常方便)。您还可以通过放入所有四个维度来生成没有 DOM 元素的画布,例如var paper = Raphael(0, 0, 100, 100);在文档的左上角制作一个 100x100 的画布。

要调整 Raphael 图标的大小,您可以使用变换功能。例如icon.transform("s2");使它变大两倍。

这个小提琴展示了如何创建一个 Raphael 画布并将铅笔图标放在上面,使其变为黄色并放大两倍。请注意,我们需要围绕左上角缩放(通常它围绕中心缩放)以防止它从页面的顶部和左侧剪掉。

var pencil = "M25.31,2.872l-3.384-2.127c-0.854-0.536-1.979-0.278-2.517,0.576l-1.334,2.123l6.474,4.066l1.335-2.122C26.42,4.533,26.164,3.407,25.31,2.872zM6.555,21.786l6.474,4.066L23.581,9.054l-6.477-4.067L6.555,21.786zM5.566,26.952l-0.143,3.819l3.379-1.787l3.14-1.658l-6.246-3.925L5.566,26.952z"
var paper = Raphael(0,0,200,200);
var icon = paper.path(pencil).attr({fill: "yellow"}).transform("s2,2,0,0");
于 2013-02-10T22:37:50.790 回答