← 動的パーツギャラリーへ戻る

パーツ番号 09-06-02 ・ JavaScript使用

レベルアップ演出

「Lv.4→Lv.5」の数字が切り替わり、周囲に光の輪が広がります。学習サイトの習熟度表示や会員ランクの昇格通知に使えます。

js

プレビュー

ソースコード

HTML

<div class="d09-06-02-box">
          <div class="d09-06-02-stage">
            <div class="d09-06-02-ring"></div>
            <div class="d09-06-02-nums">
              <span class="d09-06-02-cur">Lv.4</span>
              <span class="d09-06-02-arrow">→</span>
              <span class="d09-06-02-next">Lv.5</span>
            </div>
          </div>
          <button type="button" class="d09-06-02-btn">レベルアップ</button>
        </div>

CSS

.d09-06-02-box{display:flex;flex-direction:column;align-items:center;gap:16px}
        .d09-06-02-stage{position:relative;padding:14px 22px}
        .d09-06-02-ring{position:absolute;inset:0;border-radius:999px;border:2px solid #7c3aed;opacity:0}
        .d09-06-02-box.is-on .d09-06-02-ring{animation:d09-06-02-ring .9s ease-out}
        @keyframes d09-06-02-ring{0%{opacity:.8;transform:scale(.8)}100%{opacity:0;transform:scale(1.6)}}
        .d09-06-02-nums{position:relative;display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px;color:#312e81}
        .d09-06-02-arrow{color:#a78bfa;font-size:16px}
        .d09-06-02-cur{transition:opacity .25s ease}
        .d09-06-02-box.is-on .d09-06-02-cur{opacity:.35}
        .d09-06-02-next{display:inline-block;opacity:0;transform:translateY(10px) scale(.7);
          transition:opacity .35s ease .25s,transform .4s cubic-bezier(.2,1.6,.4,1) .25s}
        .d09-06-02-box.is-on .d09-06-02-next{opacity:1;transform:translateY(0) scale(1)}
        .d09-06-02-btn{border:none;border-radius:999px;padding:9px 22px;background:#7c3aed;color:#fff;font-size:12.5px;font-weight:700;cursor:pointer}

JavaScript

(function(){
        var root=document.getElementById('item-09-06-02');
        if(!root)return;
        var box=root.querySelector('.d09-06-02-box');
        var btn=root.querySelector('.d09-06-02-btn');
        btn.addEventListener('click',function(){
          box.classList.remove('is-on');
          void box.offsetWidth;
          box.classList.add('is-on');
        });
      })();

クラス名 .d09-06-02 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。