javascript - 使用 SVG DOM 创建比例变换

标签 javascript dom svg scaletransform

我尝试上面的代码并得到:

未捕获类型错误:无法读取未定义的属性“setScale”

我知道问题是由于将类型比例归因于我的转换而引起的。 有什么想法吗?

    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
    "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg id= "test" xmlns="http://www.w3.org/2000/svg" 
    xmlns:xlink="http://www.w3.org/1999/xlink">
    <script><![CDATA[

    var test=document.getElementById("test");
    var svgns = test.namespaceURI;
    var doc = document;

    onload=function init(){

    var t=doc.createElementNS(svgns,"rect");
    t.setAttribute("x",0);
    t.setAttribute("y",0);
    t.setAttribute("width",100);
    t.setAttribute("height",200);
    alert(t.width.baseVal.value);

    var Redimmensionnement=doc.createElementNS(svgns,"transform"); 
    Redimmensionnement.setAttribute("type",3).setScale(.75,1.2);
    t.setAttribute("transform",Redimmensionnement);
    alert(t.width.baseVal.value);

    }
    ]]>
    </script>
    </svg>

最佳答案

我想你真正想要的是这样的。请注意,您使用 createSVGTransform 而不是 createElementNS 创建变换对象。

    var test=document.getElementById("test");
    var svgns = test.namespaceURI;
    var doc = document;

    onload=function init(){

    var t=doc.createElementNS(svgns,"rect");
    t.setAttribute("x",0);
    t.setAttribute("y",0);
    t.setAttribute("width",100);
    t.setAttribute("height",200);

    var Redimmensionnement=test.createSVGTransform(); 
    Redimmensionnement.setScale(.75,1.2);
    t.transform.baseVal.initialize(Redimmensionnement);
    alert(t.getAttribute("transform"));
}
 
html, body, svg {
  width: 100%;
  height: 100%;
}
<svg id="test" onload="init()"></svg>

关于javascript - 使用 SVG DOM 创建比例变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41220897/

相关文章:

javascript - 将新元素从 XML 追加到 HTML,然后使用一个函数/回调定位新元素

javascript - PHP - file_get_contents 未获取所有内容(尝试使用curl,相同的结果)

Javascript多维嵌套数组,在单个数组中排序

php - reCaptcha 值未出现在 $_POST 中

javascript - "Unable to get value of the property ' appendChild ': object is null or undefined"同时将脚本附加到 IE

javascript - 未捕获的类型错误。 undefined object 不是函数

javascript - 在打开下拉列表/动态更新下拉列表之前等待元素加载

html - SVG 悬停未按预期改变颜色

html - SVG 在 Firefox 18 中不工作

javascript - 长文本的省略号