パーツ番号 09-02-10 ・ JavaScript使用
リアルタイム風フィード通知
「〇〇さんが登録しました」等の通知が数秒ごとに上から差し込まれ、パネル内をスクロールします。WordPressの新着アクティビティ表示風に。
プレビュー
ソースコード
HTML
<div class="d09-02-10-panel">
<div class="d09-02-10-bar">
<span class="d09-02-10-live"></span>アクティビティ
</div>
<div class="d09-02-10-feed"></div>
</div>CSS
.d09-02-10-panel{width:100%;max-width:280px;background:#fff;border:1px solid #e5e8f0;border-radius:12px;overflow:hidden;box-shadow:0 6px 18px rgba(30,40,60,.08)}
.d09-02-10-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#1f2430;color:#fff;font-size:13px;font-weight:600}
.d09-02-10-live{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:d270blink 1.6s ease-in-out infinite}
.d09-02-10-feed{max-height:170px;overflow-y:auto;padding:6px 10px}
.d09-02-10-row{display:flex;align-items:center;gap:9px;padding:8px 4px;border-bottom:1px solid #f0f2f6;animation:d270in .4s ease both}
.d09-02-10-row:last-child{border-bottom:none}
.d09-02-10-av{width:26px;height:26px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700}
.d09-02-10-info{flex:1;font-size:12px;line-height:1.35;color:#3a4152}
.d09-02-10-info b{color:#1f2430}
.d09-02-10-time{font-size:10px;color:#a5abb8;flex:none}
@keyframes d270blink{0%,100%{box-shadow:0 0 0 0 rgba(74,222,128,.6)}50%{box-shadow:0 0 0 5px rgba(74,222,128,0)}}
@keyframes d270in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}JavaScript
(function(){
var root=document.getElementById('item-09-02-10');
var feed=root.querySelector('.d09-02-10-feed');
var names=['田中','佐藤','鈴木','高橋','山本','伊藤','渡辺'];
var acts=['が登録しました','がコメントしました','をお気に入りに追加','が投稿を公開','がフォローしました'];
var colors=['#6366f1','#ec4899','#f59e0b','#10b981','#3b82f6','#8b5cf6'];
function add(){
var nm=names[Math.floor(Math.random()*names.length)];
var ac=acts[Math.floor(Math.random()*acts.length)];
var c=colors[Math.floor(Math.random()*colors.length)];
var row=document.createElement('div');
row.className='d09-02-10-row';
row.innerHTML='<span class="d09-02-10-av" style="background:'+c+'">'+nm.charAt(0)+'</span><span class="d09-02-10-info"><b>'+nm+'さん</b>'+ac+'</span><span class="d09-02-10-time">たった今</span>';
feed.insertBefore(row,feed.firstChild);
while(feed.children.length>8)feed.removeChild(feed.lastChild);
}
add();add();
setInterval(add,2600);
})();クラス名 .d09-02-10 は本ライブラリ内での識別用です。複数のパーツを同じページで使う場合は、重複しないよう名前を変更してください。