javascript - 如何在 Javascript 中设置 SVG CSS 属性的样式?

标签 javascript dom svg css-transitions svg-animate

我正在尝试动态确定 SVG 路径数组的长度,然后将此值插入到属性 lines-dasharraylines-dashoffset< 的 HTML DOM 样式对象中.

var horizontals = document.getElementsByClassName('hLine');
for (var i = 0; i < horizontals.length; i++ ) {
    var drawingComponent = horizontals[i],
        length = svgPiece.getTotalLength();

    horizontals[i].style.strokeDasharray = length;
    horizontals[i].style.strokeDashoffset = length;
}

在示例中找到here ,所有 .hLine 路径(所有水平线)都应该有动画,但它们没有。 这是因为不支持 StrokeDasharrayStrokeDashoffset 吗?

最佳答案

首先,Javascript 有一些问题:

var horizontals = document.getElementsByClassName('hLine');

您的 SVG 没有任何带有“hLine”类的元素。

length = svgPiece.getTotalLength();

“svgPiece”未在任何地方定义。

尝试这样的事情:

var horizontals = document.querySelectorAll('#horizontal path')

for (var i = 0; i < horizontals.length; i++ ) {
    var path = horizontals[i],
        length = path.getTotalLength();

    path.style.strokeDasharray = length;
    path.style.strokeDashoffset = length; 
}

Demo here - 尽管还需要做一些工作才能使动画正常工作。

关于javascript - 如何在 Javascript 中设置 SVG CSS 属性的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23727415/

相关文章:

javascript - 如何将自动对焦添加到我的 Spring 表单输入中?

javascript - 机器上的背景图像 Bigvideo.js 不起作用

javascript - JS DOM - 添加/删除按钮不起作用

javascript - 使用 JavaScript 计算税金

javascript - Nodejs 使用 async/await 导出

javascript - 从链接脚本 CFM 文件中获取域

xml - 如何在android中保存数据结构?

javascript - 如何使用javascript将不可选择的文本添加到svg而不进行初始选择?

javascript - 重绘简单图形

javascript - 动态动画 svg 元素