パーツ番号 10-03-04 ・ JavaScript使用
リアクション(いいね等)
吹き出しにホバーすると絵文字リアクションバーが出現、選ぶとバッジとして付く(ホバー・クリック動作あり)。WordPressのコメント演出に。
プレビュー
ソースコード
HTML
<div class="d10-03-04-chat">
<div class="d10-03-04-msg" tabindex="0">
<div class="d10-03-04-bub">この写真すごくよく撮れてるね!</div>
<div class="d10-03-04-bar">
<button class="d10-03-04-emo" data-e="👍">👍</button>
<button class="d10-03-04-emo" data-e="❤️">❤️</button>
<button class="d10-03-04-emo" data-e="😂">😂</button>
<button class="d10-03-04-emo" data-e="🎉">🎉</button>
</div>
<span class="d10-03-04-picked" id="d10-03-04-picked"></span>
</div>
<p class="d10-03-04-hint">吹き出しにホバー / タップして選択</p>
</div>CSS
.d10-03-04 .d10-03-04-chat{width:240px;font-size:12px}
.d10-03-04 .d10-03-04-msg{position:relative;display:inline-block;padding-bottom:4px}
.d10-03-04 .d10-03-04-bub{max-width:200px;padding:9px 12px;border-radius:14px;background:#eef1f5;color:#333;line-height:1.5;border-bottom-left-radius:4px}
.d10-03-04 .d10-03-04-bar{position:absolute;top:-16px;left:8px;display:flex;gap:2px;padding:3px 5px;background:#fff;border:1px solid #e6e9ef;border-radius:16px;box-shadow:0 4px 12px rgba(0,0,0,.1);opacity:0;transform:translateY(6px) scale(.9);pointer-events:none;transition:.2s}
.d10-03-04 .d10-03-04-msg:hover .d10-03-04-bar,.d10-03-04 .d10-03-04-msg:focus-within .d10-03-04-bar{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.d10-03-04 .d10-03-04-emo{border:none;background:none;font-size:15px;cursor:pointer;padding:2px 3px;border-radius:8px;transition:transform .12s}
.d10-03-04 .d10-03-04-emo:hover{transform:scale(1.35)}
.d10-03-04 .d10-03-04-picked{position:absolute;bottom:-10px;right:-6px;background:#fff;border:1px solid #e6e9ef;border-radius:12px;padding:1px 6px;font-size:12px;box-shadow:0 2px 6px rgba(0,0,0,.08);opacity:0;transform:scale(.5);transition:.2s}
.d10-03-04 .d10-03-04-picked.on{opacity:1;transform:scale(1)}
.d10-03-04 .d10-03-04-hint{margin-top:14px;color:#9aa4b2;font-size:11px}JavaScript
(function(){
var scope=document.getElementById('item-10-03-04'),out=document.getElementById('d10-03-04-picked');
scope.querySelectorAll('.d10-03-04-emo').forEach(function(b){
b.addEventListener('click',function(){
out.textContent=b.dataset.e+' 1';out.classList.remove('on');void out.offsetWidth;out.classList.add('on');
});
});
})();クラス名 .d10-03-04 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。