Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery SVG插件奇怪的缩放/移动问题_Svg_Jquery Svg - Fatal编程技术网

jQuery SVG插件奇怪的缩放/移动问题

jQuery SVG插件奇怪的缩放/移动问题,svg,jquery-svg,Svg,Jquery Svg,我使用的是来自的jQuerySVG插件,有一个奇怪的问题 插件包非常好,支持简单的代码。但是,当我实现缩放和移动功能时,代码仅适用于一台PC,而不适用于其他PC或智能手机 我想找到根本原因并解决问题——这样缩放功能就可以在所有平台上运行 适用于:一台带有IE8的XP PC,以及Adobe SVG Viewer附加组件 不起作用: XP PC与Firefox; 用IE8、Firefox、Chrome赢得7分; 手机剧 相关代码如下 <style type="text/css"> @im

我使用的是来自的jQuerySVG插件,有一个奇怪的问题

插件包非常好,支持简单的代码。但是,当我实现缩放和移动功能时,代码仅适用于一台PC,而不适用于其他PC或智能手机

我想找到根本原因并解决问题——这样缩放功能就可以在所有平台上运行

适用于:一台带有IE8的XP PC,以及Adobe SVG Viewer附加组件

不起作用: XP PC与Firefox; 用IE8、Firefox、Chrome赢得7分; 手机剧

相关代码如下

<style type="text/css">
@import "jquery.svg.css";
#svgbasics { width: 800px; height: 600px; border: 1px solid #484; }
</style>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script type="text/javascript" src="jquery.svg.js"></script>
<script type="text/javascript" src="jquery.svgdom.js"></script>

<script type="text/javascript">
$(function() {
    $('#svgbasics').svg({loadURL: 'Test.svg'});


    $('#ZoomIn').click(ZoomIn);
    $('#ZoomOut').click(ZoomOut);

});

function ZoomOut() {

        var svg = $('#svgbasics').svg('get');

        var viewBoxSize = $(svg.root()).attr('viewBox');
        $('#message').html(viewBoxSize);
        var viewBoxSizeArray = viewBoxSize.split(" ");

            X = Number(viewBoxSizeArray[0]);
        Y = Number(viewBoxSizeArray[1]);
        Width = Number(viewBoxSizeArray[2]);
        Height = Number(viewBoxSizeArray[3]);

        Width = Width/0.9;
        Height = Height/0.9;
        var string = X + " " + Y + " " + Width + " " + Height;
        $('#message2').html(string);
        svg.change(svg.root(), {viewBox: string});

}



</script>

@导入“jquery.svg.css”;
#svgbasics{宽度:800px;高度:600px;边框:1px实心#484;}
$(函数(){
$('#svgbasics').svg({loadURL:'Test.svg'});
$(“#缩放”)。单击(缩放);
$(“#ZoomOut”)。单击(ZoomOut);
});
函数ZoomOut(){
var svg=$('#svgbasics').svg('get');
var viewBoxSize=$(svg.root()).attr('viewBox');
$('#message').html(viewBoxSize);
var viewBoxSizeArray=viewBoxSize.split(“”);
X=编号(viewBoxSizeArray[0]);
Y=编号(viewBoxSizeArray[1]);
宽度=数量(viewBoxSizeArray[2]);
高度=数量(viewBoxSizeArray[3]);
宽度=宽度/0.9;
高度=高度/0.9;
变量字符串=X+“”+Y+“”+宽度+“”+高度;
$('#message2').html(字符串);
change(svg.root(),{viewBox:string});
}

非常感谢您的帮助。

我知道这太晚了,但我只是在研究大致相同的问题时找到了您的帖子

无论如何,您的问题可能与jQuery对属性名执行.toLowerCase()操作有关。通常情况下,这很好,但SVG似乎是某些浏览器中的一个例外

而不是

$(svg.root()).attr('viewBox');
试一试

然后

完成后再设置

svg.root().getAttribute('viewBox');
svg.root().setAttribute('viewBox', value);