Javascript 修改父SVG';s SVG.js创建的高度

Javascript 修改父SVG';s SVG.js创建的高度,javascript,jquery,wordpress,svg.js,Javascript,Jquery,Wordpress,Svg.js,我正在WordPress插件上使用SVG.js,到目前为止,除了一点点,一切都正常。我正在加载一个正在加载的外部SVG。动画正在工作,但当它反弹到顶部时,它会被切断 然后我注意到还有另一个SVG容器,它是在父SVG的上面和里面创建的,父SVG是我加载的SVG。我似乎无法编辑该父对象,使其宽度和高度超出默认的300px。我在SVG.js的FAQ中读到这是有意的,但我似乎找不到一种方法来访问它来指定高度。有什么建议吗 var svg\u本地负载; var ajax_svg=ajaxssvg.svg

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

然后我注意到还有另一个SVG容器,它是在父SVG的上面和里面创建的,父SVG是我加载的SVG。我似乎无法编辑该父对象,使其宽度和高度超出默认的300px。我在SVG.js的FAQ中读到这是有意的,但我似乎找不到一种方法来访问它来指定高度。有什么建议吗

var svg\u本地负载;
var ajax_svg=ajaxssvg.svglocation;
on(文档'DOMContentLoaded',函数(){
//获取SVG
$.ajax({
url:ajax_svg,
键入:“GET”,
async:false,
数据类型:“文本”,
成功:功能(resp){
svg_local_load=resp;
}
});
//加载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\u grp.add(svg\u本地加载);
svg_grp.animate(1000,'bounce')。move(0,-20)。loop(true,true);

});我将首先解释您的代码实际上在做什么

  • 您正在启动一个ajax请求,该请求最终设置了一个变量(这一点很重要)

  • 然后通过调用
    SVG()
    创建一个
    ,并将其添加到id为
    SVG\u foo\u id
    的元素中。这个元素应该是
    或类似的元素(如果它是
    元素,那么这里您已经错了。您没有发布任何html代码,所以我需要猜测

  • 接下来,在已经创建的SVG中创建一个组

  • 这个组中,您将加载的ajax请求内容放入中,但该内容甚至还没有加载
  • 在这一点上,我想知道为什么它会显示任何内容,因为
    svg\u local\u load
    仍然应该是
    undefined
    ,因为ajax请求尚未完成,无法设置变量。
    建议:将所有代码放入ajax请求的
    success
    回调中,或者从那里调用创建svg的函数

    既然你说,这一点已经起作用了,我假设,你发布的代码不是你在实际程序中使用的代码


    回到您的问题:您从未设置一开始创建的svg的
    size()
    。您可以使用
    draw.size(1000,1000)进行设置
    。如果有一个
    级别高于此级别,请参见第2点

    谢谢您的反馈!1.是的-这是正确的。2.是的,它也是一个div。3.如果我想进行一些翻译和缩放,文档中建议将它们分组。在本例中,我基本上是翻译整个组。SVG是一个完整的artwork从InDesign导出。4.通过将其设置为async:false,它首先完成。关于大小的好主意!我显然错过了这一步。我将尝试它。到2。是的,这是一种简单的方法,但现在您得到了一个外部和内部svg,这不是很好。您可以使用svg(svg代码)。addTo(…)从你的作品中创建一个SVG并直接包含它。现在你可以通过改变视窗来“移动”它(它不是真的移动,但结果是相同的)AHH——这是更有意义的。我没有考虑使用VIEWBOX来“移动”它。我发现MOVER()倾向于错误地翻译它,但这可能是因为SVG的创建方式。简单的移动(0,-20)会将我的SVG移动到其他位置。您不会对SVG本身使用移动,而是使用viewbox方法