隐藏SVG元素需要花费很多时间

时间:2014-06-19 07:26:06

标签: javascript css for-loop svg

我正在尝试显示/隐藏一些svg元素。我的svg有点大。为了显示或隐藏,这样做需要8秒。我真的很想在更短的时间内拥有它。这是关于1996年的元素(当时并不认为这是很多)。因此,我认为我的代码不是最好的代码。我希望你能帮助我优化代码。

isChecked = jqElement.is(':checked');
type = jqElement.attr('tag');
var start = new Date().getTime();
elements = document.getElementsByClassName(type);
console.log('LAYER ' + type + ': ' + elements.length);
for (j=0; j<elements.length; j++)
    elements[j].setAttribute('visibility', (isChecked)? '' : 'hidden');
var end = new Date().getTime();
var time = end - start;
console.log('Execution time for layer ' + type + ': '+ time);

提前致谢

1 个答案:

答案 0 :(得分:2)

所有SVG元素都在一些常见容器中吗?如果是这样,您可以尝试操纵容器的可见性而不是每个单独的元素。或者,您是否可以操纵类的样式规则并让浏览器担心将新规则应用于所有内容?