什么是快照SVG中的g()

时间:2016-08-15 16:03:26

标签: javascript svg snap.svg

嘿伙计们我正在浏览 THIS snap.svg演示,现在当我检查本地计算机上的代码时,它看起来如下:

        var g = Snap();
        g.attr({
            viewBox: [0, 0, 800, 600]
        });

        Snap.load("map.svg", function (f) {
            function getShift(dot) {
                return "t" + (400 - dot.x) + "," + (300 - dot.y);
            }
            var gr = f.select("g"),
                wrd = f.select("#world").attr({fill: "#fff"}),
                syd = f.select("#sydney").attr({fill: "red"}),
                msk = f.select("#san_francisco").attr({fill: "red"}),
                pth = f.select("#flight"),
                pln = f.select("#plane"),
                top = g.g();
            top.attr({
                mask: g.rect(100, 0, 600, 600).attr({
                    fill: "r(.5,.5,.25)#fff-#000"
                })
            });

我只是发布了我难以理解的代码的初始部分,在上面的代码部分中有以下行:

top = g.g(); 

现在看一下片段,您可以看到gsnap()的一个实例,但为什么上面的代码行?我正在处理的SVG是 THIS

我不太了解代码行g.g()。谁能解释一下?

1 个答案:

答案 0 :(得分:1)

奇怪的是他们的代码有点令人困惑。首先,我不会这样做,我有点惊讶......

var g = Snap();
通常意味着' group'。但是,Snap()不会返回一个组,它会返回一个Snap' svg'元件。

所以相反我认为他们现在通常会做以下事情,这样做会更好......

var s = Snap()   // its an svg or snap instance 

var paper = Snap() // its typically known as a paper you draw on

那么它会导致这条线,而且看起来像#39;阅读时更正确...

var top = paper.group() // you can use g and group interchangeably.

这意味着添加一个'组'容器到paper / svg元素。