【问题标题】:Modify the parent SVG's height that SVG.js creates修改 SVG.js 创建的父 SVG 的高度
【发布时间】:2020-03-05 05:53:59
【问题描述】:

我在 WordPress 插件上使用 SVG.js,到目前为止一切正常,除了一点点。我正在加载一个正在加载的外部 SVG。动画正在运行,但当它弹到顶部时,它会被切断。

然后我注意到有另一个 SVG 容器在上一层创建,在该父 SVG 内部是我加载的 SVG。我似乎无法将该父级编辑为具有默认 300 像素之外的宽度和高度。我在 SVG.js 的常见问题解答中读到这是故意的,但我似乎无法找到一种方法来访问它来指定高度。有什么建议吗?

var svg_local_load;
var ajax_svg = ajaxsvg.svglocation;


SVG.on(document, 'DOMContentLoaded', function() {

    	 	//gets SVG
    	 	$.ajax({
    	 		url: ajax_svg,
    	 		type: 'GET',
    	 		async: false,
    	 		dataType: "text",
    	 		success: function(resp){
    	 			svg_local_load = resp;
    	 		}
    	 	});

    	 	//Loads SVG
    	 	var draw = SVG().addTo('#svg_foo_id');

    	 	var svg_grp = draw.group().id('btn_game_save_id');

    	 	//var parent = draw.parent(SVG.Svg);

    	 	svg_grp.add(svg_local_load);

    	 	svg_grp.animate(1000, 'bounce').move(0, -20).loop(true, true);


    	 });

【问题讨论】:

    标签: javascript jquery wordpress svg.js


    【解决方案1】:

    我将首先解释您的代码实际在做什么。

    1. 您正在启动一个 最终设置变量的 ajax 请求(这有点重要)。

    2. 然后通过调用SVG() 创建一个<svg> 并将其添加到ID 为svg_foo_id 的元素中。这个元素应该是<div> 或类似元素(如果它是<svg> 元素,你就已经错了。你没有发布任何html代码,所以我需要猜测。

    3. 接下来您在已创建的 SVG 中创建一个组。

    4. THIS 组中,您将加载的 ajax 请求内容 BUT 甚至还没有加载。

    此时我想知道,为什么它会显示任何内容,因为svg_local_load 仍应为undefined,因为 ajax 请求尚未完成并且无法设置变量。
    建议: 将所有代码放入 ajax 请求的 success 回调中,或从那里调用创建 svg 的函数。

    既然你说,这部分已经有效,我假设你发布的代码不是你在实际程序中使用的代码。

    回到您的问题:您从未设置一开始创建的 svg 的 size()。你可以通过draw.size(1000, 1000) 做到这一点。如果有一个<svg> 高于那个级别,请参阅第 2 点

    【讨论】:

    • 感谢您的反馈! 1. 是的——没错。 2. 是的,它也是一个 div。 3. 如果我想做一些平移和缩放,文档中建议将它们分组。在这种情况下,我基本上是在翻译整个小组。 SVG 是从 InDesign 导出的完整图稿。 4. 通过将其设置为 async:false,它首先完成。关于尺寸的好主意!我显然错过了一步。我试试看。
    • 至 2。是的,这是一种简单的方法,但现在你最终得到了一个不太好的外部和内部 svg。您可以使用 SVG(svg code).addTo(...) 从您的作品中创建一个 SVG 并直接包含它。现在你可以通过改变视图框来“移动”它(它并没有真正移动,但结果是一样的)
    • 啊——现在更有意义了。我没有考虑使用 viewbox 来“移动”它。我发现 move() 往往会错误地翻译它,但这可能是因为创建 SVG 的方式。一个简单的 move(0, -20) 会将我的 SVG 移动到不同的位置。
    • 您不会在 svg 本身上使用 move 而是使用 viewbox 方法
    猜你喜欢
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多