18
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vivus.js で「見えないペン」アニメーションを付けてみる

Last updated at Posted at 2018-10-25

はじめに

フロントエンドエンジニアをしています。
SVG画像に「見えないペン」でするする~と書いたようなアニメーションを付けられる Vivus.js を使ってみました。

*公式*
https://maxwellito.github.io/vivus/

*Github*
https://github.com/maxwellito/vivus/

*Vivus Instant*
https://maxwellito.github.io/vivus-instant/

実装方法

1. SVG画像の用意

イラレでSVG画像を作りました:fork_and_knife:
テキストデータはアウトライン化します。

名称未設定-1_03.png

2. htmlの用意

htmlに、SVGのコードをいれます。
SVGにidを設定。

<svg id="my-svg">
  <path...>
  <path...>
  <path...>
</svg>

3. CSS設定

今回は簡単に色を変えたりしているだけです。

<style type="text/css">
  .st0 {
    fill: none;
    stroke: #00f4ff;
  }
# ↑fill は塗りつぶし。noneにしておく。stroke は線の色を指定しています。
  path {
    fill-opacity: 0;
    transition: fill-opacity 1s;
  }
# ↑pathの透明度を0にしておく。
  .fill path {
    fill: #ff94df;
    fill-opacity: 1;
    stroke: none;
  }
# ↑.fillがついたら、色をピンクに、pathの透明度を1に
</style>

4. アニメーション設定

vivus.jsの読み込みと、アニメーションのオプションを設定します。
公式にオプションのリストがあります。
https://github.com/maxwellito/vivus#vivusjs

<script src="https://cdnjs.cloudflare.com/ajax/libs/vivus/0.3.2/vivus.js"></script>
<script>
  new Vivus('my-svg', # ここにはSVGに設定したidを入れる
    {
      duration: 120 , # アニメーションの時間
      start: 'autostart', # アニメーションの自動再生
      pathTimingFunction: Vivus.EASE_OUT # アニメーションのタイプ
    },
    function(obj){
      obj.el.classList.add('fill'); # アニメーション後、'fill'クラスを付与してアニメーションを実行
    }
  );
</script>

実装結果

See the Pen mzQdYR by Yuzuki (@yuzukisakioka) on CodePen.

まとめ

今回は簡単なサンプルでしたが、オプションもたくさんあり、工夫次第でお手軽に素敵なアニメーションができるようです。
まずはぜひ触ってみてください:yum:
デザイナーさんにアニメーションを作ってもらわなくても、こんなこともできますよと提案できるようなエンジニアになりたいなーと思います。

18
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?