Xin chào, tôi là Yukenz
Hôm nay là ngày nghỉ của tôi, ngồi rảnh nên thử nhờ chatgpt làm 1 danh sách phát nhạc trên web. Và kết quả tôi đã có 1 trang web phát nhạc theo danh sách.
Tôi đã nhờ chatgpt tạo web như thế nào?
- hãy tạo cho tôi 1 danh sách phát nhạc bằng html, css và js
- danh sách phát theo thứ tự
- phân trang, mỗi trang có 5 bài hát
Kết quả
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Music Player with Playlist</title> <link rel="stylesheet" href="/nhactui/style.css"> </head> <body> <div class="audio-player"> <h3 id="title">Song Title</h3> <audio id="audio-player" controls preload="auto"></audio> <div class="playlist"> <ul id="playlist"></ul> </div> <div class="pagination" id="pagination"></div> </div> <script src="/nhactui/script.js"></script> </body> </html>
document.addEventListener('DOMContentLoaded', function() { var audioPlayer = document.getElementById('audio-player'); var playlistElement = document.getElementById('playlist'); var paginationElement = document.getElementById('pagination'); var titleElement = document.getElementById('title'); var tracks = [ { url: "https://cdn.wapka.io/00cy8h/2a8b1f762414deaa931ecc9391fbdbb1/hay-chi-em-cach-quen-anh-yumi-nkj.mp3", title: "Hãy chỉ em cách quên anh Yukenz - Yumi Nkj" }, { url: "https://cdn.wapka.io/00d3ak/dbe3314f6343fa169a45bd7abe5940e3/loi-hua-jp2-yushin.mp3", title: "Lời hứa - YuShin" }, { url: "https://cdn.wapka.io/00d3cl/2e9f5993a59153999d040369135490c7/loi-hua-nhi.mp3", title: "Lời hứa - Nhi" }, { url: "https://cdn.wapka.io/00d3dp/163813bde9ef1ef6b4125d4fe89bb1e2/loi-hua-jani.mp3", title: "Lời hứa - Jani" }, { url: "https://cdn.wapka.io/00d3dy/2005aedd48f8a98fb1f58aa78f8b5f52/loi-hua-jani1.mp3", title: "Lời hứa - Jani 2" }, { url: "https://cdn.wapka.io/00d3e2/d73aeddcf1fd68e2e1fddd1cca847123/loi-hua-remix.mp3", title: "Lời hứa - Remix" }, { url: "https://cdn.wapka.io/00d3em/e5b3784d2218de8775e3df4eebb189d8/loi-hua-mo1.mp3", title: "Lời hứa - MOLL" }, { url: "https://cdn.wapka.io/00d3er/868314b6b2ad6344272c7c878a55a1cf/loi-hua-edm.mp3", title: "Lời hứa - EDM" }, { url: "https://cdn.wapka.io/00d3ex/5b58c38fc9dbd9987d5b1a86fe88c40a/loi-hua-edm1.mp3", title: "Lời hứa - EDM1" }, { url: "https://cdn.wapka.io/00d3fg/777e70ac2d10fb21e9f10d9b1672445b/loi-hua-janii2.mp3", title: "Lời hứa - Jani22" }, // ... thêm các bài hát khác ở đây { url: "https://cdn.wapka.io/00d3ck/39aff88bd2fe932e41a1a11859c3abe1/loi-hua-yukenz.mp3", title: "Lời hứa - Yukenz" } ]; var currentTrack = 0; var currentPage = 1; var tracksPerPage = 5; function setActiveTrack(index) { var links = document.querySelectorAll('.playlist a'); links.forEach(function(link, i) { if (i === index) { link.classList.add('active'); } else { link.classList.remove('active'); } }); } function playTrack(index) { var track = tracks[index]; audioPlayer.src = track.url; titleElement.textContent = track.title; audioPlayer.play(); setActiveTrack(index); currentTrack = index; } function renderPlaylist(page) { playlistElement.innerHTML = ''; var start = (page - 1) * tracksPerPage; var end = Math.min(start + tracksPerPage, tracks.length); for (var i = start; i < end; i++) { var li = document.createElement('li'); var span = document.createElement('span'); var a = document.createElement('a'); span.textContent = (i + 1) + '.'; a.href = tracks[i].url; a.textContent = tracks[i].title; a.addEventListener('click', function(e) { e.preventDefault(); var index = Array.prototype.indexOf.call(playlistElement.querySelectorAll('a'), this); playTrack(start + index); }); li.appendChild(span); li.appendChild(a); playlistElement.appendChild(li); } } function renderPagination() { paginationElement.innerHTML = ''; var totalPages = Math.ceil(tracks.length / tracksPerPage); for (var i = 1; i <= totalPages; i++) { var button = document.createElement('button'); button.textContent = i; if (i === currentPage) { button.classList.add('active'); } button.addEventListener('click', function() { currentPage = parseInt(this.textContent); renderPlaylist(currentPage); renderPagination(); }); paginationElement.appendChild(button); } } audioPlayer.addEventListener('ended', function() { currentTrack = (currentTrack + 1) % tracks.length; playTrack(currentTrack); }); renderPlaylist(currentPage); renderPagination(); playTrack(currentTrack); // Start playing the first track });
body { font-family: Arial, sans-serif; background-color: #f4f4f4; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; } .audio-player { background: #fff; border-radius: 8px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); padding: 20px; width: 300px; text-align: center; } .audio-player h3 { margin: 10px 0; font-size: 1.2em; } .audio-player audio { width: 100%; margin-top: 10px; } .playlist { margin-top: 10px; text-align: left; } .playlist ul { list-style: none; padding: 0; } .playlist li { margin: 5px 0; display: flex; align-items: center; } .playlist li span { margin-right: 10px; font-weight: bold; } .playlist a { text-decoration: none; color: #3399ff; display: block; flex: 1; padding: 5px; border-radius: 4px; } .playlist a:hover, .playlist a.active { background: #3399ff; color: #fff; } .pagination { margin-top: 10px; text-align: center; } .pagination button { padding: 5px 10px; margin: 2px; border: none; background-color: #3399ff; color: white; border-radius: 4px; cursor: pointer; } .pagination button.active { background-color: #0056b3; }
Tôi đang thử cho nó tạo 1 blog bằng php. Sau khi hoàn thiện tôi sẽ tiếp tục chia sẻ .chúc mọi người nghe nhạc của tôi vui vẻ
Đề Mô: Lời Hứa