我有SVG路径(纯色),我想用其他路径(虚线)遮盖。我有这个CSS
.dashed{
stroke-dasharray: 5;
}
.path {
stroke-dasharray: 852;
stroke-dashoffset: 852;
animation: dash 4s 1s linear forwards;
}
@keyframes dash {
to {
stroke-dashoffset: 0;
}
}
和这样的SVG
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="612px" height="792px" viewBox="0 0 612 792" enable-background="new 0 0 612 792" xml:space="preserve">
<g transform="scale(1.7)">
<path class="path" fill="none" stroke="#e31f1a" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="1.0" d="m 34.161514,227.15068 c 0,0 5.335031,41.13009 -10.338686,53.31427 -13.8827124,10.79193 -26.8802222,-16.84233 0.681739,-19.39738 52.917804,-4.90561 69.13065,91.87642 69.13065,91.87642"/>
</g>
<g transform="scale(1.71)">
<path class="dashed" fill="none" stroke="black" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="1.5" d="m 34.161514,227.15068 c 0,0 5.335031,41.13009 -10.338686,53.31427 -13.8827124,10.79193 -26.8802222,-16.84233 0.681739,-19.39738 52.917804,-4.90561 69.13065,91.87642 69.13065,91.87642"/>
</g>
</svg>
路径相同。我不只使用虚线的原因是动画(请参阅CSS部分),我要在其中进行效果绘制虚线。
使用蒙版图像(虚线在其中)
mask-image: url(mask.svg);
对我不起作用。你知道吗?
答案 0 :(得分:1)
您不需要使用mask-image
。这是当您要使用遮罩遮罩HTML元素时使用的。
您应该只使用SVG <mask>
元素。并在其中设置路径动画。
.dashed {
stroke-dasharray: 5;
}
.path {
stroke-dasharray: 226;
stroke-dashoffset: 226;
animation: dash 4s 1s linear forwards;
}
@keyframes dash {
to {
stroke-dashoffset: 0;
}
}
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" width="612px" height="792px" viewBox="0 0 612 792">
<defs>
<mask id="mymask">
<path class="path" fill="none" stroke="#fff" stroke-width="2"
d="m 34.161514,227.15068 c 0,0 5.335031,41.13009 -10.338686,53.31427 -13.8827124,10.79193 -26.8802222,-16.84233 0.681739,-19.39738 52.917804,-4.90561 69.13065,91.87642 69.13065,91.87642"/>
</mask>
</defs>
<g transform="scale(1.71)">
<path class="dashed" fill="none" stroke="black" stroke-linejoin="round" stroke-miterlimit="10" stroke-width="1.5"
mask="url(#mymask)"
d="m 34.161514,227.15068 c 0,0 5.335031,41.13009 -10.338686,53.31427 -13.8827124,10.79193 -26.8802222,-16.84233 0.681739,-19.39738 52.917804,-4.90561 69.13065,91.87642 69.13065,91.87642"/>
</g>
</svg>