【问题标题】:Creating horizontal linear gradient with Raphael使用 Raphael 创建水平线性渐变
【发布时间】:2012-04-26 11:51:37
【问题描述】:

我是 Raphael 库的新手(顺便说一句,目前看起来很棒)

我想知道如何创建水平线性渐变。

到目前为止,这是我的测试代码,主要来自我一直在查看的示例:-

$(function () {
    var paper = Raphael(0, 0, $(window).width(), $(window).height());
    var path = paper.path("M800,100 L800,600 Q801,610 802,600 T803,600 L803,100 Q802,110 801,100 T800,100").attr({
        "fill": "90-#f00:5-#00f:100",
        "fill-opacity": 0.5
    });
    var pathArray = path.attr("path");
    handle = paper.circle(pathArray[0][1], 350, 5).attr({
        fill: "black",
        cursor: "pointer",
        "stroke-width": 1,
        stroke: "transparent"
    });
    var start = function () {
        this.cx = this.attr("cx"),
        this.cy = this.attr("cy");
    },
    move = function (dx, dy) {
        var X = this.cx + dx, Y = this.cy + dy;
        this.attr({ cx: X, cy: Y });
        pathArray[0][1] = pathArray[1][1] = pathArray[6][1] = X;
        path.attr({ path: pathArray });
    },
    up = function () {
        this.dx = this.dy = 0;
    };
    handle.drag(move, start, up);
});

我从 w3 网站上的 SVG 规范中看到,实际的 linearGradient 标签中有一个 x1,x2,y1,y2 属性(尽管我什至不确定它们是否处理方向?http://www.w3.org/TR/SVG/pservers.html#LinearGradientElement)。

我只是没有使用足够多的 Raphael,不知道如何在我的路径属性中设置它。

干杯, 哇卡。

附: 编辑:添加以下帮助,但仅适用于 IE:-

$("linearGradient").attr("x1", "0");
$("linearGradient").attr("x2", "100%");
$("linearGradient").attr("y1", "0");
$("linearGradient").attr("y2", "0");

另一个编辑:有趣的是,以上仅适用于 IE,但以下适用于两者(即使 HTML 相同):-

$("defs").children().attr("x1", "0");
$("defs").children().attr("x2", "100%");
$("defs").children().attr("y1", "0");
$("defs").children().attr("y2", "0");

由于某种原因,IE 中为 1,chrome 中为 0:-

$("lineargradient").length

现在,虽然这可行,但肯定有更好的方法吗?

【问题讨论】:

    标签: javascript raphael gradient


    【解决方案1】:

    这是一个具有水平和垂直渐变的矩形示例。

    paper.rect(100,100,200,200).attr({"fill":"0-#f00:5-#00f:100"});
    paper.rect(300,300,200,200).attr({"fill":"90-#f00:5-#00f:100"});
    

    填充中的第一个值是渐变的角度。您可以将其应用于您的路径。

    【讨论】:

    • 啊...这么简单...我假设下一个数字是沿路径的百分比?
    • 我会教一个人钓鱼...查看raphaeljs.com/reference.html#Element.attr,特别是渐变。那里解释得很简洁。
    • 我确实看到了,但是看不到如何改变渐变...我的下一个问题是尝试基本上用 Raphael 制作这个(20thingsilearned.com/en-GB):P
    • 我找了很久关于如何做到这一点。对于那些想要条纹图案但不能在 Rafael 路径中使用“url(#whatever)”的人来说,这是一个很好的答案。我放入了一个很长的自定义渐变,就成功了。
    猜你喜欢
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2021-10-24
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多