【发布时间】:2014-06-16 09:39:17
【问题描述】:
我在 Illustrator 中制作了一些路径并将其导出为 .svg。现在我想用 css 和 javascript 为这些路径设置动画。当我在 HTML5 中加载 svg 内联时,我已经找到了一个很好的小提琴。因为有很多路径(大约 500 条),所以我想将其嵌入 HTML5 中。我的问题:嵌入时我无法访问 svg 文件。如何在嵌入 svg 时访问我的所有路径/线条/多边形?
HTML:
<embed src="pano_botanique.svg" width="100%" height="100%" ; type="image/svg+xml" id='svgsource' />
JS:
$(document).ready(function () {
var svgs = document.getElementsByTagName('svg');
function selfdraw() {
for (var i = 0; i < svgs.length; i++) {
svgs[i].classList.add('draw');
}
}
});
CSS:
svg * {
fill: none;
stroke: none;
}
.draw * {
stroke: #3675D8;
stroke-width: 0.5px;
-webkit-animation: self-draw 30s ease-in;
-webkit-animation-fill-mode: backwards;
}
@-webkit-keyframes self-draw {
0% {
stroke-dasharray: 0 100%
}
40% {
stroke-dasharray: 100% 0%
}
}
编辑:
var svgs = document.getElementById('svgsource').contentDocument();
svgs.addEventListener('load', function () {
var svg = svgs.contentDocument();
function selfdraw() {
for (var i = 0; i < svgs.length; i++) {
svgs[i].classList.add('draw');
}
}
});
这应该可以,但不行:(
【问题讨论】:
标签: javascript html css svg embed