我收到此错误“无法读取属性'getBBox'的null”我无法理解为什么?

时间:2015-10-28 14:16:36

标签: javascript html css svg

我正在尝试在onmouseover上缩放svg部分并将其重新缩放到之前的大小onmouseout

无法读取null

的属性'getBBox'
D=document;
var lib = 'http://www.w3.org/2000/svg';
D.
function magnify(scale,x){  x.setAttribute("transform","matrix(1.5 0 0 1 0 0)");
}
function minimize(x){   x.setAttribute("transform","matrix(1 0 0 1 0 0)");
}

function getCenter(selection)
{   bbox=D.getElementById("#"+selection).getBBox();
    return[bbox.x + bbox.width/2,bbox.y + bbox.height/2];
}
function reCoor(scale, x)
{
        var coor = getCenter(x);
        var newX=x[0].width*(1-scale);
        var newY=x[1].height*(1-scale);

        var output = "matrix(" + scale + " 0 0 " + scale + " " + newX + " " + newY +")";

        return[output];
}

MyFiddle

1 个答案:

答案 0 :(得分:0)

您可以通过调用getBoundingClientRect

来获取任何元素的边界框
var rect = document.getElementById("myElement").getBoundingClientRect();

这将返回一个具有left,top,width和height字段的对象。