2016-03-28 13 views
1

私はSVGを使ってやりたい基本的なアニメーションを持っています。しかし、私はそれを中心からアニメートする方法について100%確実ではありません。私はSVGアニメーションを初めて使っているので、簡単なアニメーションの作成方法はわかっていますが、私が持っていた質問に対する確かな答えは実際には見つかりませんでした。ここでSVGアニメーション:中心から線を描く

/*MAIN ANIMATION*/ 

.line1, 
.line2 { 
    position: absolute; 
    left: 50%; 
    -webkit-transform: translate(-50%, -50%); 
     -ms-transform: translate(-50%, -50%); 
      -o-transform: translate(-50%, -50%); 
       transform: translate(-50%, -50%); 
    -ms-transform: rotate(90deg); /* IE 9 */ 
     -webkit-transform: rotate(90deg); /* Chrome, Safari, Opera */ 
      transform: rotate(90deg); 
} 

.line1 { 
    top: 0px; 
    animation: line1 5s linear forwards; /*ANIMATION NAME AND TIMING*/ 
} 

.line2 { 
    bottom: 0px; 
    animation: line2 5s linear forwards; /*ANIMATION NAME AND TIMING*/ 
} 

.animationText { 
    width: 100%; 
    font-size: 30px; 
    font-weight: normal; 
    text-align: center; 
    position: absolute; 
    left: 50%; 
    top: 50%; 
    -webkit-transform: translate(-50%, -50%); 
     -ms-transform: translate(-50%, -50%); 
      -o-transform: translate(-50%, -50%); 
       transform: translate(-50%, -50%); 
} 

はラインは、現時点ではどのように見えるかについてフィドルです: https://jsfiddle.net/7mastya4/6/

だから要するに、私は外向きの中心からアニメーション化するためにこれらの行を希望しています。 私は標準的なアニメーションを行う方法を知っていますが、SVGには新しく、アニメーションの起点を変更するのはちょっと新しいです。

ありがとうございました。

+0

あなたは本当にCSSで行をアニメーション化することはできません...あなたがパスを必要とする...のhttps://css-tricks.com/svg-line-animation-works/ –

+0

の場合あなたはフィドルを見て、私はパスを作った: – factordog

+0

いいえ...あなたは 'line'要素を持っています...' path'sではありません...しかし、おそらくそれも行で動作します。 –

答えて

2

これは何か?

.animline { 
 
    fill: none; 
 
    stroke: black; 
 
    stroke-width: 2; 
 
    -webkit-animation: expand-from-centre 5s linear forwards; 
 
    animation: expand-from-centre 5s linear forwards; 
 
} 
 

 
@-webkit-keyframes expand-from-centre 
 
{ 
 
    from { 
 
    stroke-dasharray: 0 300; 
 
    stroke-dashoffset: -150; 
 
    } 
 
    
 
    to { 
 
    stroke-dasharray: 300 300; 
 
    stroke-dashoffset: 0; 
 
    } 
 
} 
 

 

 
@keyframes expand-from-centre 
 
{ 
 
    from { 
 
    stroke-dasharray: 0 300; 
 
    stroke-dashoffset: -150; 
 
    } 
 
    
 
    to { 
 
    stroke-dasharray: 300 300; 
 
    stroke-dashoffset: 0; 
 
    } 
 
}
<svg> 
 
    <line class="animline" x1="0" y1="75" x2="300" y2="75"/> 
 
</svg>

+0

うわー、非常に賢い。私はこれらの2つのアニメーションだけでその効果を得ることは可能だとは思わなかった。 – Harry

関連する問題