Drift Hunters Html Code — Top

/* default sort by score desc */ render(players.slice().sort((a,b)=>b.score-a.score));

<!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <title>Top Drift Hunters</title> <style> :root{ --bg:#0f1720; --card:#0b1220; --muted:#9aa6b2; --accent:#ff4d4d; --glass: rgba(255,255,255,0.04); font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; } body{margin:20px;background:linear-gradient(180deg,#071018 0%, #08131a 100%);color:#e6eef3;} .leaderboard{max-width:900px;margin:0 auto;padding:18px;border-radius:12px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));box-shadow:0 6px 30px rgba(2,6,23,0.6);} .header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px} .title{display:flex;gap:12px;align-items:center} .title h2{margin:0;font-size:20px} .controls{display:flex;gap:8px;align-items:center} .btn{background:var(--glass);border:1px solid rgba(255,255,255,0.04);color:var(--muted);padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13px} .btn.active{border-color:var(--accent);color:var(--accent)} .list{display:grid;gap:10px} .card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;background:linear-gradient(180deg, rgba(255,255,255,0.015), rgba(0,0,0,0.06));border:1px solid rgba(255,255,255,0.03)} .rank{font-weight:700;background:linear-gradient(90deg,#111827,#0f1720);padding:8px 12px;border-radius:999px;font-size:14px;color:#fff;min-width:48px;text-align:center} .avatar{width:56px;height:56px;border-radius:10px;overflow:hidden;flex-shrink:0;background:#021018} .avatar img{width:100%;height:100%;object-fit:cover;display:block} .meta{flex:1;min-width:0} .name{display:flex;align-items:center;gap:8px;justify-content:space-between} .name h3{margin:0;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .sub{margin-top:6px;color:var(--muted);font-size:13px;display:flex;gap:10px;flex-wrap:wrap} .score{display:flex;flex-direction:column;align-items:flex-end;gap:4px} .points{font-weight:700;font-size:18px;color:#fff} .trend{font-size:12px;color:var(--muted)} @media(max-width:520px){ .header{flex-direction:column;align-items:flex-start;gap:10px} .score{align-items:flex-start} } </style> </head> <body> <section class="leaderboard" aria-labelledby="lb-title"> <div class="header"> <div class="title"> <svg width="32" height="32" viewBox="0 0 24 24" fill="none" aria-hidden><path d="M3 12h18M9 5l-6 7 6 7" stroke="#ff4d4d" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/></svg> <h2 id="lb-title">Top Drift Hunters</h2> <div style="color:var(--muted);font-size:13px;margin-left:6px">Weekly leaderboard</div> </div>

<script> /* Sample data — replace with your backend data or API fetch */ const players = [ {id:1,name:"RazorRX",avatar:"https://i.pravatar.cc/100?img=12",car:"Nissan S14",score:9850,streak:12,lastSeen:"2h ago"}, {id:2,name:"NeonDrift",avatar:"https://i.pravatar.cc/100?img=5",car:"Toyota AE86",score:9420,streak:9,lastSeen:"6h ago"}, {id:3,name:"SlideKing",avatar:"https://i.pravatar.cc/100?img=20",car:"Mazda RX-7",score:9005,streak:7,lastSeen:"1d ago"}, {id:4,name:"Ghostline",avatar:"https://i.pravatar.cc/100?img=13",car:"Subaru BRZ",score:8740,streak:4,lastSeen:"3h ago"}, {id:5,name:"TurboTide",avatar:"https://i.pravatar.cc/100?img=8",car:"Ford Mustang",score:8120,streak:3,lastSeen:"12h ago"} ]; drift hunters html code top

function render(sorted){ listEl.innerHTML = ''; sorted.forEach((p, i) => { const card = document.createElement('div'); card.className = 'card'; card.setAttribute('role','listitem'); card.innerHTML = ` <div class="rank">#${i+1}</div> <div class="avatar" aria-hidden><img src="${p.avatar}" alt=""></div> <div class="meta"> <div class="name"> <h3 title="${p.name}">${p.name}</h3> <div class="score"> <div class="points">${p.score.toLocaleString()}</div> <div class="trend">${p.lastSeen}</div> </div> </div> <div class="sub"><span><strong>Car:</strong> ${p.car}</span><span><strong>Streak:</strong> ${p.streak} days</span></div> </div> `; listEl.appendChild(card); }); }

<div id="list" class="list" role="list"> <!-- Items injected by JS --> </div> </section> /* default sort by score desc */ render(players

const listEl = document.getElementById('list');

/* control handlers: sort by score, streak, recent (lastSeen parse) */ document.querySelectorAll('.controls .btn').forEach(btn=>{ btn.addEventListener('click',()=>{ document.querySelectorAll('.controls .btn').forEach(b=>b.classList.remove('active')); btn.classList.add('active'); const key = btn.dataset.sort; let sorted; if(key==='score') sorted = players.slice().sort((a,b)=>b.score-a.score); else if(key==='streak') sorted = players.slice().sort((a,b)=>b.streak-b.streak?b.streak-a.streak: b.score-a.score); else if(key==='recent'){ // crude parse: "2h ago", "1d ago", "6h ago", "12h ago" const toHours = s=>{ if(!s) return 9999; if(s.includes('d')) return parseFloat(s)*24; if(s.includes('h')) return parseFloat(s); if(s.includes('m')) return parseFloat(s)/60; return 9999; } sorted = players.slice().sort((a,b)=> toHours(a.lastSeen) - toHours(b.lastSeen)); } else sorted = players; render(sorted); }); }); </script> </body> </html> If you want: I can adapt this to fetch live data from an API endpoint, add pagination, a CSS theme matching your site, or export as a reusable web component. Which would you like? meta charset="utf-8" /&gt

<div class="controls" role="toolbar" aria-label="Leaderboard controls"> <button class="btn active" data-sort="score">Top</button> <button class="btn" data-sort="streak">Streak</button> <button class="btn" data-sort="recent">Recent</button> </div> </div>

This website uses cookies to ensure you get the best experience on our website. If you continue browsing, you are agreeing to their use. You may revoke your consent and obtain further information by consulting our Cookies Policy.

This Website is for Adults Only!

Are you at least 18 years old?