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

パーツ番号 08-14-02 ・ JavaScript使用

カーソルから逃げる反発アイコン

マウスが近づくとアイコンが反発力でスッと逃げ、離れると中央へ戻ります。WordPressの遊び心あるバッジやイースターエッグ的な装飾に使えます。

js

プレビュー

ソースコード

HTML

<div class="d08-14-02-icon" aria-hidden="true">⚡</div>

CSS

.d08-14-02{cursor:crosshair}
        .d08-14-02-icon{font-size:36px;line-height:1;transition:transform .15s ease-out;user-select:none}

JavaScript

(function(){
        var wrap=document.querySelector('#item-08-14-02 .d08-14-02');
        var icon=document.querySelector('#item-08-14-02 .d08-14-02-icon');if(!wrap||!icon)return;
        wrap.addEventListener('mousemove',function(e){
          var r=icon.getBoundingClientRect();
          var cx=r.left+r.width/2,cy=r.top+r.height/2;
          var dx=cx-e.clientX,dy=cy-e.clientY;
          var dist=Math.hypot(dx,dy);
          var radius=100;
          if(dist<radius&&dist>0.01){
            var p=(1-dist/radius)*40;
            icon.style.transform='translate('+((dx/dist)*p)+'px,'+((dy/dist)*p)+'px)';
          }else{
            icon.style.transform='';
          }
        });
        wrap.addEventListener('mouseleave',function(){icon.style.transform='';});
      })();

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