わんすけに聞いてみる Javascript,jquery [anime.js]アニメーションロゴ スライドイン

[anime.js]アニメーションロゴ スライドイン


 

anime.jsを使ってスルスル動くロゴを作る練習してみた。

1.前提

このページのコードでは、jqueryとanime.jsを使っています。

サンプル1.すぅいーん すすすす

<div id="wansuke_anime1" class="anime-str-arrow-left" anime-str="WANSUKE" face="Monotype Corsiva">
<div class="icon-base wansuke-icon small-in-opacity"></div>
</div>

こんな感じのタグを書くと↓こうなるソースを書いてみた。

 

 

サンプル2.ぎゅん! すすすす

<div id="wansuke_anime2" class="anime-str-arrow-left" anime-str="WANSUKE" face="fantasy">
<div class="icon-base wansuke-kirarin spin-in-opacity"></div>
</div>

こうすると、↓こうなる。

 

2.ソースコード

javascriptは、こんな感じ。

$(function (){
    $('div.anime-str-arrow-left').each(function () {
        let $logo = $(this);
        let fonts = $logo.attr('anime-str').split('');
        let face = $logo.attr('face');
        let lg_width = parseInt($logo.css('width'))-80 ;

        if (fonts.length) {
          let step_lng = lg_width / fonts.length
          for (let i=0 ; i < fonts.length ; i++) {
              let $font = $("<font />").attr('face', face).attr('stop-pos',step_lng*i-lg_width - 10).addClass('slide-left').text(fonts[i]);
              $logo.append($font);
          }
        }
    });
    var anime_sample1_2 = anime.timeline({duration: 300, direction: 'normal', easing: 'easeInOutQuart'});
    $('#wansuke_anime1 font.slide-left').each(function (){
       anime_sample1_2.add({ targets: this, translateX: $(this).attr('stop-pos') });
    });
    anime_sample1_2.pause;
    var anime_sample1 = anime({ targets: '.small-in-opacity', opacity: 0, duration: 1500, scale: 3, direction: 'reverse', loop: 1, easing: 'easeInOutQuart',
        complete: function (){
          anime_sample1_2.restart();
        }, });

    var anime_sample2_2 = anime.timeline({duration: 300, direction: 'normal', easing: 'easeInOutQuart'});
    $('#wansuke_anime2 font.slide-left').each(function (){
       anime_sample2_2.add({ targets: this, translateX: $(this).attr('stop-pos') });
    });
    anime_sample1_2.pause;
    var anime_sample2 = anime({ targets: '.spin-in-opacity', opacity: 0, duration: 1500, scale: 3, rotate: '2turn', direction: 'reverse', loop: 1, easing: 'spring',
        complete: function () { anime_sample2_2.restart(); } });

    $("#anime_sample1").on('click', function (){ anime_sample1.restart() });
    $("#anime_sample2").on('click', function (){ anime_sample2.restart() });
});

属性「anime-str」で設定された文字を、属性「face」で指定したフォントでスライドさせている。

CSSは適当にこんな感じ。

div.anime-str-arrow-left { 
 display: inline-block;
 position: relative;
 width: 220px;
 height: 55px;
 overflow: hidden;
}
div.icon-base {
 position: absolute;
 width: 50px;
 height: 50px;
 background-size: contain;
 background-repeat:
 no-repeat;
 background-position: center; 
} 
div.wansuke-icon {
 background-image: url(wp-content/uploads/2018/10/wanchan_.png);
} 
div.wansuke-kirarin {
 background-image: url(wp-content/uploads/2018/11/wan2.png); 
} 
div.anime-str-arrow-left font.slide-left {
 position: absolute;
 right: -20px 
}

とりあえず、動くレベルまで調整してみたけども、ソースぐちゃぐちゃになってしまったぁ・・・。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Related Post