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

パーツ番号 11-04-05 ・ JavaScript使用

スポットライト・コーチマーク

周囲を暗くして対象だけ明るく強調し、説明を表示します。「わかった」で解除。重要操作の誘導に効果的です。

jsdark

プレビュー

ソースコード

HTML

<div class="d11-04-05-ui">
          <div class="d11-04-05-block a">投稿一覧</div>
          <div class="d11-04-05-block target" id="d11-04-05-target">公開ボタン</div>
          <div class="d11-04-05-block b">メディア</div>
        </div>
        <div class="d11-04-05-mask"></div>
        <div class="d11-04-05-coach">
          <p>ここを押すと記事が公開されます。まずはお試しで下書き保存もできます。</p>
          <button class="d11-04-05-ok">わかった</button>
        </div>
        <button class="d11-04-05-replay">再生</button>

CSS

.d11-04-05{background:#1c2233}
        .d11-04-05 .d11-04-05-ui{width:100%;max-width:240px;display:flex;flex-direction:column;gap:10px;position:relative;z-index:1}
        .d11-04-05 .d11-04-05-block{padding:14px;border-radius:8px;background:#2c3448;color:#aeb6cc;font-size:13px;text-align:center}
        .d11-04-05 .d11-04-05-block.target{position:relative;z-index:4;background:#fff;color:#1c2233;font-weight:700;box-shadow:0 0 0 4px rgba(255,255,255,.15),0 0 30px 6px rgba(120,160,255,.6);transition:box-shadow .4s}
        .d11-04-05 .d11-04-05-mask{position:absolute;inset:0;background:rgba(10,14,26,.72);opacity:0;visibility:hidden;transition:opacity .4s;z-index:2}
        .d11-04-05 .d11-04-05-mask.show{opacity:1;visibility:visible}
        .d11-04-05 .d11-04-05-coach{position:absolute;left:50%;bottom:22px;transform:translateX(-50%) translateY(10px);width:200px;background:#fff;border-radius:10px;padding:14px;z-index:5;opacity:0;visibility:hidden;transition:opacity .4s,transform .4s;box-shadow:0 12px 30px rgba(0,0,0,.4)}
        .d11-04-05 .d11-04-05-coach.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
        .d11-04-05 .d11-04-05-coach p{font-size:12px;line-height:1.6;color:#2b3350;margin-bottom:10px}
        .d11-04-05 .d11-04-05-ok{background:#5b7cfa;color:#fff;border:none;border-radius:6px;padding:7px 16px;font-size:12px;cursor:pointer}
        .d11-04-05 .d11-04-05-target-off{box-shadow:none!important}
        .d11-04-05 .d11-04-05-replay{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.12);color:#fff;border:none;border-radius:16px;padding:5px 14px;font-size:11px;cursor:pointer;z-index:6}

JavaScript

(function(){
        var root=document.querySelector('#item-11-04-05 .d11-04-05');
        if(!root)return;
        var mask=root.querySelector('.d11-04-05-mask'),coach=root.querySelector('.d11-04-05-coach'),target=root.querySelector('#d11-04-05-target');
        function on(){mask.classList.add('show');coach.classList.add('show');target.classList.remove('d11-04-05-target-off')}
        function off(){mask.classList.remove('show');coach.classList.remove('show');target.classList.add('d11-04-05-target-off')}
        root.querySelector('.d11-04-05-ok').addEventListener('click',off);
        root.querySelector('.d11-04-05-replay').addEventListener('click',on);
        setTimeout(on,400);
      })();

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