パーツ番号 06-04-05 ・ JavaScript使用
リアクション絵文字ピッカー演出
複数の絵文字リアクションから選ぶとポップして選択状態を表示する。コメント欄やチャットUIの反応に。
プレビュー
ソースコード
HTML
<div class="d06-04-05-wrap">
<button class="d06-04-05-emoji" type="button" data-e="👍">👍</button>
<button class="d06-04-05-emoji" type="button" data-e="❤️">❤️</button>
<button class="d06-04-05-emoji" type="button" data-e="😂">😂</button>
<button class="d06-04-05-emoji" type="button" data-e="😮">😮</button>
<button class="d06-04-05-emoji" type="button" data-e="😢">😢</button>
</div>
<span class="d06-04-05-selected"></span>CSS
.d06-04-05 { flex-direction:column; gap:10px; }
.d06-04-05-wrap { display:flex; gap:6px; }
.d06-04-05-emoji { border:1px solid #e5e7eb; background:#fff; border-radius:999px; width:36px; height:36px; font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:border-color .2s, opacity .2s; }
.d06-04-05-wrap.d06-04-05-picked .d06-04-05-emoji:not(.d06-04-05-active) { opacity:.4; }
.d06-04-05-emoji.d06-04-05-active { border-color:#3b82f6; animation:d535pop .35s ease; }
@keyframes d535pop { 0%{transform:scale(1);} 50%{transform:scale(1.4);} 100%{transform:scale(1.1);} }
.d06-04-05-selected { font-size:12px; color:#6b7280; min-height:16px; }JavaScript
(function(){
var article = document.currentScript.closest('article');
var root = article.querySelector('.d06-04-05');
var wrap = root.querySelector('.d06-04-05-wrap');
var buttons = root.querySelectorAll('.d06-04-05-emoji');
var selected = root.querySelector('.d06-04-05-selected');
buttons.forEach(function(b){
b.addEventListener('click', function(){
buttons.forEach(function(x){ x.classList.remove('d06-04-05-active'); });
b.classList.add('d06-04-05-active');
wrap.classList.add('d06-04-05-picked');
selected.textContent = b.getAttribute('data-e') + ' を選択しました';
});
});
})();クラス名 .d06-04-05 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。