SnapSVG:缩放转换执行无错误,但没有明显的影响

SnapSVG: scale transform executing error-free but with no noticeable effect

本文关键字:影响 缩放 转换 执行 无错误 SnapSVG      更新时间:2023-09-26

我对Snap &Svg,试图变得精明。我有一个外部SVG文件,我将其作为片段加载,然后附加到纸对象上。然后我要缩放整个纸质物体。

执行以下代码;外部文件加载,阴影被应用,它可见地附加到纸张对象上。然而,变换不做任何事情。据我所知,我已经复制了本教程中看到的相同的基本效果。不幸的是,官方文档,至少对我来说,或多或少是无用的,因为它的模棱两可,通过简洁的方法。有人知道吗?

var logo
            $.ajax({
                url:"img/logo.svg",
                data: null,
                complete: function(resp) {
                    logo = Snap.parse(resp.responseText);
                    logo = logo.selectAll("g");
                    var logoPaper = Snap(app.sl.svg.splash.logo.svg).append(logo);
                    logoPaper.select("#logo-full-mask")
                             .attr({filter:logoPaper.filter(Snap.filter.shadow(0,0,5, "rgba(0,0,0,.3)"))})
                    var t = Snap.matrix().scale(1.4);
                    var trans = logoPaper.transform(t.toTransformString());
                }
            });

经过一番折腾,我自己解决了这个问题,但由于我不清楚这个答案对像我这样的新手来说是否显而易见,所以我选择发布它。

我试图缩放纸对象本身,这不起作用(或者以一些意想不到的方式工作,这是无用的)。相反,对象的元素需要缩放;对于我来说,最简单的方法就是创建一组我所有的路径并进行缩放,所以:

var t = Snap.matrix().scale(1.4);
logoPaper.group(logoPaper.selectAll("path")).transform(t);