【发布时间】:2014-07-24 04:34:20
【问题描述】:
我正在尝试使用 svg 和 css 动画为带有虚线的箭头设置动画,类似于 ------->,但具有水平和垂直路径。
我尝试了几种不同的方法,动画高度和宽度,使用底部和顶部,但每种方式都有一些看起来不太好或效果不佳的东西。
我设法用 svg 绘制了一条路径,但动画实际上会删除破折号并只画一条实线。
无动画:http://jsfiddle.net/ehan4/2/
<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="252px" height="396px" viewBox="0 0 252 396" enable-background="new 0 0 252 396" xml:space="preserve">
<path stroke="#000" stroke-width="1.5" fill="none" d="M50.887,170.063v-53.488h55.814" stroke-dasharray="5,5" stroke-dashoffset="0.00" />
带动画:http://jsfiddle.net/ehan4/1/
<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="252px" height="396px" viewBox="0 0 252 396" enable-background="new 0 0 252 396" xml:space="preserve">
<path stroke="#000" stroke-width="1.5" fill="none" d="M50.887,170.063v-53.488h55.814" stroke-dasharray="5,5" stroke-dashoffset="0.00" />
var path = document.querySelector('path');
var length = path.getTotalLength();
path.style.transition = path.style.WebkitTransition = 'none';
path.style.strokeDasharray = length + ' ' + length;
path.style.strokeDashoffset = length;
path.getBoundingClientRect();
path.style.transition = path.style.WebkitTransition = 'stroke-dashoffset 2s ease-in-out';
path.style.strokeDashoffset = '0';
任何想法或想法将不胜感激!
Z
【问题讨论】:
-
你能有 2 条路径吗?一个用于剥离线,然后在其上放置另一个实体。动画会增加不透明度还是擦除顶层?
-
@MathiasaurusRex 啊!我认为这可行。给我 10 分钟。
-
@MathiasaurusRex 完全有效,非常感谢!看看:jsfiddle.net/ehan4/4
标签: javascript jquery css animation svg