如何解析SVG元素的viewBox x,y,width和height值?

时间:2016-07-18 04:05:25

标签: svg snap.svg

假设我有一个SVG元素:

<svg id="myMap" viewBox="0 0 200 200"></svg>

我如何获得特定值 myMap的viewBox?有关简化示例:如何获取myMap的viewBox属性的“x”值? (对于上面的例子,x值是第一个零(0))。

以下是我尝试过的语法的一些变体:

<script>
  var myMap = Snap("#myMap");
  alert(myMap.attr("viewBox"));//dislays [object Object]
  alert(myMap.attr("viewBox.vbx"));//also dislays [object Object]
  alert(myMap.attr("viewBox.x"));//also dislays [object Object]
</script>

以上所有示例都在警告框中显示[object Object] 我需要视口的x,y,宽度和高度的正确浮点值来实现地图中的放大和缩小功能。

3 个答案:

答案 0 :(得分:4)

你总是可以直接从DOM中读出它

&#13;
&#13;
private static StringBuilder collect(JavaRDD<String> javaRDD) {
        StringBuilder builder = new StringBuilder();
        javaRDD.foreach(x -> builder.append(x));
        System.out.println(builder.toString() + " ****");
         return builder;
    }
&#13;
alert(document.getElementById("myMap").viewBox.baseVal.width);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

attr()方法返回一个对象而不是标量,而alert()需要一个标量。如果您使用console.log()而不是alert(),则可以在JavaScript控制台中看到对象的内容。

获取svg使用

的x,y,宽度和高度
var myMap = Snap("#myMap");
var attrs = myMap.attr("viewBox");

console.log(attr.x);
console.log(attr.y);
console.log(attr.width);
console.log(attr.height);

答案 2 :(得分:0)

谢谢@Robert Longson

alert(document.getElementById("myMap").viewBox.baseVal.width);
<svg id="myMap" viewBox="0 0 200 200"></svg>

alert(document.getElementById("myMap").viewBox.baseVal.width);
<svg id="myMap" viewBox="0 0 200 200"></svg>