<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Player Details</title> <style> body { font-family: Arial, sans-serif; } .header { background-color: #00e6e6; color: white; padding: 10px; text-align: center; font-size: 24px; font-weight: bold; } .player-list { display: flex; flex-wrap: wrap; justify-content: center; } .player-card { border: 1px solid #ccc; width: 30%; margin: 15px; text-align: center; padding: 10px; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); } .player-card img { width: 150px; height: auto; } .player-card h3 { color: teal; } .player-card p { font-size: 16px; margin: 5px 0; } .update-btn { background-color: lightblue; border: none; padding: 10px; cursor: pointer; } .popup { display: none; position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); background-color: white; padding: 20px; box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.5); } .popup input, .popup button { margin: 10px 0; padding: 10px; } </style> </head> <body> <div class="header">Player Details</div> <div class="player-list" id="player-list"> <!-- Player cards will be dynamically generated here --> </div> <!-- Popup for updating rank --> <div class="popup" id="update-popup"> <h3>Update The Rank</h3> <p id="player-name">Player Name</p> <label for="rank">Rank:</label> <input type="number" id="rank" min="1"> <br> <button id="saveButton">SaveUpdate</button> <button onclick="closePopup()">Cancel</button> </div> <script> const players = [ {name: "MS Dhoni", role: "Batsman", matches: 206, rank: 13, img: "https://app.e-box.co.in/uploads/Image/6107/dhoni.png"}, {name: "Ravendra Jadeja", role: "Batsman", matches: 185, rank: 17, img: "https://app.e-box.co.in/uploads/Image/6107/jadeja.png"}, {name: "Rohit Sharma", role: "Bowler", matches: 165, rank: 21, img: "https://app.e-box.co.in/uploads/Image/6107/sharma.png"}, {name: "Suresh Raina", role: "Bowler", matches: 135, rank: 35, img: "https://app.e-box.co.in/uploads/Image/6107/raina.png"}, {name: "Virat Kohli", role: "Batsman", matches: 190, rank: 12, img: "https://app.e-box.co.in/uploads/Image/6107/kohli.png"}, {name: "Yuvraj Singh", role: "Bowler", matches: 142, rank: 26, img: "https://app.e-box.co.in/uploads/Image/6107/yuvaraj.png"} ]; let currentPlayer = null; function displayPlayers() { const playerList = document.getElementById('player-list'); playerList.innerHTML = ''; players.forEach((player, index) => { const playerCard = ` <div class="player-card" id="player${index + 1}"> <img src="${player.img}" alt="${player.name}"> <h3>${player.name}</h3> <p>Role: ${player.role}</p> <p>Total Matches: ${player.matches}</p> <p>Rank: <span id="player-rank${index + 1}">${player.rank}</span></p> <button class="update-btn" id="player-button${index + 1}" onclick="openPopup(${index})">Update Player</button> </div> `; playerList.innerHTML += playerCard; }); } function openPopup(index) { currentPlayer = index; document.getElementById('player-name').textContent = players[index].name; document.getElementById('rank').value = players[index].rank; document.getElementById('update-popup').style.display = 'block'; } function closePopup() { document.getElementById('update-popup').style.display = 'none'; } document.getElementById('saveButton').addEventListener('click', function() { const newRank = document.getElementById('rank').value; if (currentPlayer !== null && newRank) { players[currentPlayer].rank = newRank; document.getElementById(`player-rank${currentPlayer + 1}`).textContent = newRank; closePopup(); } }); // Display the player cards on page load displayPlayers(); </script> </body> </html>
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter