カラーSVGパスをアニメーションで塗りつぶします

isuru

SVGパスの色を塗りつぶすために次の方法を使用しています。それにアニメーションを追加する方法はありますか?中心から始まり、広がるカラーフィリング。

$(function(){
    $("#btn-test1").on("click",function(){
        $("#path1").attr("fill","#0000");   

    });
});
Bとして

この回答はjQuery.animate()CSS @keyframes、およびSVG SMILを使用してSVGパスの塗りつぶし色をアニメーション化するための4つの異なるオプション提供します-アニメーション

#1 jQuery.animate()およびSVG <radialGradient>

$(function(){
  $("button").on("click",function(){
  
    $(this).animate(
      {
        textIndent: 1, // or whatever
      }, {
        duration: 3000,
	step: function ( now, fx ) {
            	// arguments:
                // now: numeric value of the property being animated at each step
                // fx: reference to the jQuery.fx prototype object
                	// fx.start: first value of the animated property
                    // fx.end: last value of the animated property
                var from = 0,
                	  to = 700,
                    r = from + to * ( now - fx.start ) / ( fx.end - fx.start ); // animate r from 0 to 700
                
                $("#gradient").attr( "r", r + "px" );
			  },
        complete: function () {
          $("#path").attr("fill", "#000"); // callback
        }
      }
    );
    
  });
});
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<head>
<body>

  <button>Start Animation</button>
  
  <svg height="150" width="300">
    <defs>
      <radialGradient id="gradient" r="0px" gradientUnits="userSpaceOnUse">
        <stop offset="20%" style="stop-color: #000; stop-opacity: 1" />
        <stop offset="100%" style="stop-color: #000; stop-opacity: 0" />
      </radialGradient>
    </defs>
    <path id="path" d="M 0 0 Q 300 300 300 0 z" fill="url(#gradient)" />
  </svg>
</body>



#2 jQuery.animate()およびSVG変換属性

$(function(){
  $("button").on("click",function(){
  
    $(this).animate(
      {
        textIndent: 1, // or whatever
      }, {
        duration: 3000,
	step: function ( now, fx ) {
            	// arguments:
                // now: numeric value of the property being animated at each step
                // fx: reference to the jQuery.fx prototype object
                	// fx.start: first value of the animated property
                    // fx.end: last value of the animated property
                var from = 0,
                	  to = 1,
                    scale = from + to * ( now - fx.start ) / ( fx.end - fx.start ); // animate r from 0 to 700
                
                $("#path").attr( "transform", "scale(" + scale + ")" );
			  }
      }
    );
    
  });
});
#path {transform-origin: 50% 50%;}
<head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>

  <button>Start Animation</button>
  
  <svg height="150" width="300">
     <path id="path" d="M 0 0 Q 300 300 300 0 z" fill="#000" />
  </svg>

</body>

おそらくそれはあなたが期待した結果ではありませんが、それはオプションです。



#3 CSS @keyframes

stop {
  stop-opacity: 0;
  animation: 3s animateStopOpacity;
}
stop:last-child {
  animation-delay: 2s;
}

@keyframes animateStopOpacity {
    from {stop-opacity: 0;}
    to {stop-opacity: 1;}
}
<body>
  <svg height="150" width="300">
    <defs>
      <radialGradient id="gradient" r="50%" gradientUnits="userSpaceOnUse">
        <stop offset="0%" style="stop-color: #000; stop-opacity: 1" />
        <stop offset="100%" style="stop-color: #000; stop-opacity: 0" />
      </radialGradient>
    </defs>
    <path id="path" d="M 0 0 Q 300 300 300 0 z" fill="url(#gradient)" />
  </svg>
</body>



#4 SVGSMILアニメーション

<body>

  <svg height="150" width="300">
    <defs>
      <radialGradient id="gradient" r="100px" gradientUnits="userSpaceOnUse">
        <stop offset="20%" style="stop-color: #000; stop-opacity: 1" />
        <stop offset="100%" style="stop-color: #000; stop-opacity: 0" />
        <animate 
    	attributeName="r"
    	from="0"
    	to="700"
    	dur="3s"
    	fill="freeze" 
       />
      </radialGradient>
    </defs>
    <path id="path" d="M 0 0 Q 300 300 300 0 z" fill="url(#gradient)" />
  </svg>

</body>



私はあなたを助けることができると思います!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

svgパス塗りつぶしアニメーション

分類Dev

ホバー中にテキストカラーアニメーションをアニメーションカラーで塗りつぶします

分類Dev

CSSを使用してSVGパス要素の塗りつぶしをアニメーション化する

分類Dev

svg塗りつぶしパスアニメーションの問題

分類Dev

アニメーションによる Svg パスの塗りつぶし

分類Dev

Swift での SpriteKit カラー塗りつぶしアニメーション

分類Dev

マウスオーバー/マウスアウト(SMIL)でインラインSVGの塗りつぶし属性をアニメーション化する方法

分類Dev

CSS(JS)を使用して、SVG写真のパスと塗りつぶしをアニメーション化(描画)します

分類Dev

jqueryを使用してSVGの塗りつぶしをアニメーション化しますか?

分類Dev

SVG要素を繰り返し線形グラデーションカラーで塗りつぶします

分類Dev

SVGストロークと塗りつぶしアニメーション

分類Dev

CSSクラスに応じてSVG塗りつぶしアニメーションの高さを変更します

分類Dev

divを円形のカラーアニメーションで塗りつぶす

分類Dev

Androidで「塗りつぶし」アニメーションを作成する方法

分類Dev

雲または任意のフォームを色で塗りつぶします(アニメーション)

分類Dev

SVG塗りつぶしアニメーションが初期状態に戻ります

分類Dev

UIViewの一部をアニメーションで色で塗りつぶします

分類Dev

svg塗りつぶしアニメーションはFirefoxでは機能しません

分類Dev

UIImageViewを他の色のアニメーションで塗りつぶします

分類Dev

パスの長さに沿って線形にSVG塗りつぶしをアニメーション化する

分類Dev

SVGポリゴンをアニメーション化して塗りつぶす方法は?

分類Dev

グラデーション塗りつぶしSVGをjqueryで

分類Dev

アニメーション効果の塗りつぶしSVGを描画する方法は?

分類Dev

SVG rectをアニメーション化して下から上に塗りつぶす方法は?

分類Dev

SVG塗りつぶしを左から右にアニメーション化する

分類Dev

svgアニメーションが完了した後に色を塗りつぶしたいのですが、実行されません

分類Dev

楕円を波のアニメーションで塗りつぶす

分類Dev

CSSを使用してSVGをアニメーション化する:最初にストローク、次に塗りつぶし

分類Dev

Androidカスタムビューでパスを線形グラデーションで塗りつぶす方法

Related 関連記事

  1. 1

    svgパス塗りつぶしアニメーション

  2. 2

    ホバー中にテキストカラーアニメーションをアニメーションカラーで塗りつぶします

  3. 3

    CSSを使用してSVGパス要素の塗りつぶしをアニメーション化する

  4. 4

    svg塗りつぶしパスアニメーションの問題

  5. 5

    アニメーションによる Svg パスの塗りつぶし

  6. 6

    Swift での SpriteKit カラー塗りつぶしアニメーション

  7. 7

    マウスオーバー/マウスアウト(SMIL)でインラインSVGの塗りつぶし属性をアニメーション化する方法

  8. 8

    CSS(JS)を使用して、SVG写真のパスと塗りつぶしをアニメーション化(描画)します

  9. 9

    jqueryを使用してSVGの塗りつぶしをアニメーション化しますか?

  10. 10

    SVG要素を繰り返し線形グラデーションカラーで塗りつぶします

  11. 11

    SVGストロークと塗りつぶしアニメーション

  12. 12

    CSSクラスに応じてSVG塗りつぶしアニメーションの高さを変更します

  13. 13

    divを円形のカラーアニメーションで塗りつぶす

  14. 14

    Androidで「塗りつぶし」アニメーションを作成する方法

  15. 15

    雲または任意のフォームを色で塗りつぶします(アニメーション)

  16. 16

    SVG塗りつぶしアニメーションが初期状態に戻ります

  17. 17

    UIViewの一部をアニメーションで色で塗りつぶします

  18. 18

    svg塗りつぶしアニメーションはFirefoxでは機能しません

  19. 19

    UIImageViewを他の色のアニメーションで塗りつぶします

  20. 20

    パスの長さに沿って線形にSVG塗りつぶしをアニメーション化する

  21. 21

    SVGポリゴンをアニメーション化して塗りつぶす方法は?

  22. 22

    グラデーション塗りつぶしSVGをjqueryで

  23. 23

    アニメーション効果の塗りつぶしSVGを描画する方法は?

  24. 24

    SVG rectをアニメーション化して下から上に塗りつぶす方法は?

  25. 25

    SVG塗りつぶしを左から右にアニメーション化する

  26. 26

    svgアニメーションが完了した後に色を塗りつぶしたいのですが、実行されません

  27. 27

    楕円を波のアニメーションで塗りつぶす

  28. 28

    CSSを使用してSVGをアニメーション化する:最初にストローク、次に塗りつぶし

  29. 29

    Androidカスタムビューでパスを線形グラデーションで塗りつぶす方法

ホットタグ

アーカイブ