我来为你创建一个QQ音乐风格的排行榜页面,包含完整的交互功能和现代化设计。

QQ音乐网页版排行榜页面html
(图片来源网络,侵删)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">QQ音乐 - 排行榜</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap');
        body {
            font-family: 'Noto Sans SC', sans-serif;
        }
        .rank-item {
            transition: all 0.3s ease;
        }
        .rank-item:hover {
            transform: translateX(10px);
        }
        .rank-number {
            transition: all 0.3s ease;
        }
        .rank-item:hover .rank-number {
            transform: scale(1.2);
        }
        .play-btn {
            opacity: 0;
            transition: opacity 0.3s ease;
        }
        .rank-item:hover .play-btn {
            opacity: 1;
        }
        .tab-active {
            border-bottom: 3px solid #ec4141;
            color: #ec4141;
        }
        .music-card {
            transition: all 0.3s ease;
        }
        .music-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 30px rgba(0,0,0,0.1);
        }
        .scrollbar-hide {
            -ms-overflow-style: none;
            scrollbar-width: none;
        }
        .scrollbar-hide::-webkit-scrollbar {
            display: none;
        }
    </style>
</head>
<body class="bg-gray-50">
    <!-- 顶部导航 -->
    <nav class="bg-white shadow-sm sticky top-0 z-50">
        <div class="container mx-auto px-4">
            <div class="flex items-center justify-between h-16">
                <div class="flex items-center space-x-8">
                    <div class="flex items-center space-x-2">
                        <i class="fas fa-music text-red-500 text-2xl"></i>
                        <span class="text-xl font-bold">QQ音乐</span>
                    </div>
                    <div class="hidden md:flex space-x-6">
                        <a href="#" class="text-gray-700 hover:text-red-500 transition">首页</a>
                        <a href="#" class="text-red-500 font-medium">排行榜</a>
                        <a href="#" class="text-gray-700 hover:text-red-500 transition">歌单</a>
                        <a href="#" class="text-gray-700 hover:text-red-500 transition">歌手</a>
                    </div>
                </div>
                <div class="flex items-center space-x-4">
                    <div class="relative">
                        <input type="text" placeholder="搜索音乐、歌手、歌词" 
                               class="w-64 px-4 py-2 pl-10 bg-gray-100 rounded-full focus:outline-none focus:ring-2 focus:ring-red-500">
                        <i class="fas fa-search absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400"></i>
                    </div>
                    <button class="bg-red-500 text-white px-4 py-2 rounded-full hover:bg-red-600 transition">
                        <i class="fas fa-user-circle mr-2"></i>登录
                    </button>
                </div>
            </div>
        </div>
    </nav>
    <!-- 主要内容区 -->
    <main class="container mx-auto px-4 py-8">
        <div class="grid grid-cols-1 lg:grid-cols-4 gap-8">
            <!-- 左侧排行榜列表 -->
            <div class="lg:col-span-1">
                <div class="bg-white rounded-lg shadow-sm p-4">
                    <h2 class="text-lg font-bold mb-4">排行榜</h2>
                    <div class="space-y-2">
                        <a href="#" class="block p-3 rounded hover:bg-gray-100 transition rank-list-item" data-rank="hot">
                            <div class="flex items-center space-x-3">
                                <span class="text-2xl font-bold text-red-500">1</span>
                                <div>
                                    <div class="font-medium">飙升榜</div>
                                    <div class="text-sm text-gray-500">每日更新</div>
                                </div>
                            </div>
                        </a>
                        <a href="#" class="block p-3 rounded hover:bg-gray-100 transition rank-list-item" data-rank="new">
                            <div class="flex items-center space-x-3">
                                <span class="text-2xl font-bold text-orange-500">2</span>
                                <div>
                                    <div class="font-medium">新歌榜</div>
                                    <div class="text-sm text-gray-500">每日更新</div>
                                </div>
                            </div>
                        </a>
                        <a href="#" class="block p-3 rounded hover:bg-gray-100 transition rank-list-item" data-rank="original">
                            <div class="flex items-center space-x-3">
                                <span class="text-2xl font-bold text-green-500">3</span>
                                <div>
                                    <div class="font-medium">原创榜</div>
                                    <div class="text-sm text-gray-500">每周更新</div>
                                </div>
                            </div>
                        </a>
                        <a href="#" class="block p-3 rounded hover:bg-gray-100 transition rank-list-item" data-rank="global">
                            <div class="flex items-center space-x-3">
                                <span class="text-2xl font-bold text-blue-500">4</span>
                                <div>
                                    <div class="font-medium">全球榜</div>
                                    <div class="text-sm text-gray-500">每日更新</div>
                                </div>
                            </div>
                        </a>
                        <a href="#" class="block p-3 rounded hover:bg-gray-100 transition rank-list-item" data-rank="kpop">
                            <div class="flex items-center space-x-3">
                                <span class="text-2xl font-bold text-purple-500">5</span>
                                <div>
                                    <div class="font-medium">韩国榜</div>
                                    <div class="text-sm text-gray-500">每周更新</div>
                                </div>
                            </div>
                        </a>
                    </div>
                </div>
                <!-- 热门推荐 -->
                <div class="bg-white rounded-lg shadow-sm p-4 mt-6">
                    <h3 class="text-lg font-bold mb-4">热门推荐</h3>
                    <div class="space-y-3">
                        <div class="flex items-center space-x-3 p-2 rounded hover:bg-gray-50 cursor-pointer">
                            <img src="https://picsum.photos/seed/music1/50/50.jpg" alt="专辑" class="w-12 h-12 rounded">
                            <div class="flex-1">
                                <div class="font-medium text-sm">夜曲</div>
                                <div class="text-xs text-gray-500">周杰伦</div>
                            </div>
                            <i class="fas fa-play-circle text-gray-400 text-xl"></i>
                        </div>
                        <div class="flex items-center space-x-3 p-2 rounded hover:bg-gray-50 cursor-pointer">
                            <img src="https://picsum.photos/seed/music2/50/50.jpg" alt="专辑" class="w-12 h-12 rounded">
                            <div class="flex-1">
                                <div class="font-medium text-sm">晴天</div>
                                <div class="text-xs text-gray-500">周杰伦</div>
                            </div>
                            <i class="fas fa-play-circle text-gray-400 text-xl"></i>
                        </div>
                    </div>
                </div>
            </div>
            <!-- 右侧排行榜详情 -->
            <div class="lg:col-span-3">
                <!-- 排行榜头部 -->
                <div class="bg-white rounded-lg shadow-sm p-6 mb-6">
                    <div class="flex items-center justify-between">
                        <div>
                            <h1 class="text-2xl font-bold mb-2">飙升榜</h1>
                            <p class="text-gray-600">每日更新 · 2025年1月</p>
                        </div>
                        <div class="flex space-x-4">
                            <button class="px-4 py-2 bg-red-500 text-white rounded-full hover:bg-red-600 transition">
                                <i class="fas fa-play mr-2"></i>播放全部
                            </button>
                            <button class="px-4 py-2 border border-gray-300 rounded-full hover:bg-gray-50 transition">
                                <i class="fas fa-plus mr-2"></i>收藏
                            </button>
                        </div>
                    </div>
                </div>
                <!-- 排行榜列表 -->
                <div class="bg-white rounded-lg shadow-sm overflow-hidden">
                    <div class="border-b">
                        <div class="flex px-6 py-3 text-sm text-gray-600">
                            <div class="w-12">排名</div>
                            <div class="flex-1">歌曲</div>
                            <div class="w-24">歌手</div>
                            <div class="w-24">专辑</div>
                            <div class="w-24">时长</div>
                        </div>
                    </div>
                    <div id="rankList" class="divide-y">
                        <!-- 排行榜项目将通过JavaScript动态生成 -->
                    </div>
                </div>
                <!-- 相关推荐 -->
                <div class="mt-8">
                    <h3 class="text-xl font-bold mb-4">相关推荐</h3>
                    <div class="grid grid-cols-2 md:grid-cols-4 gap-4">
                        <div class="music-card bg-white rounded-lg shadow-sm overflow-hidden cursor-pointer">
                            <img src="https://picsum.photos/seed/album1/200/200.jpg" alt="专辑" class="w-full h-48 object-cover">
                            <div class="p-4">
                                <h4 class="font-medium mb-1">热门华语精选</h4>
                                <p class="text-sm text-gray-500">包含100首热门歌曲</p>
                            </div>
                        </div>
                        <div class="music-card bg-white rounded-lg shadow-sm overflow-hidden cursor-pointer">
                            <img src="https://picsum.photos/seed/album2/200/200.jpg" alt="专辑" class="w-full h-48 object-cover">
                            <div class="p-4">
                                <h4 class="font-medium mb-1">欧美流行金曲</h4>
                                <p class="text-sm text-gray-500">欧美热门单曲合集</p>
                            </div>
                        </div>
                        <div class="music-card bg-white rounded-lg shadow-sm overflow-hidden cursor-pointer">
                            <img src="https://picsum.photos/seed/album3/200/200.jpg" alt="专辑" class="w-full h-48 object-cover">
                            <div class="p-4">
                                <h4 class="font-medium mb-1">日韩流行榜</h4>
                                <p class="text-sm text-gray-500">日韩最新流行音乐</p>
                            </div>
                        </div>
                        <div class="music-card bg-white rounded-lg shadow-sm overflow-hidden cursor-pointer">
                            <img src="https://picsum.photos/seed/album4/200/200.jpg" alt="专辑" class="w-full h-48 object-cover">
                            <div class="p-4">
                                <h4 class="font-medium mb-1">经典老歌</h4>
                                <p class="text-sm text-gray-500">怀旧经典歌曲合集</p>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </main>
    <!-- 底部播放器 -->
    <div class="fixed bottom-0 left-0 right-0 bg-white border-t shadow-lg">
        <div class="container mx-auto px-4 py-3">
            <div class="flex items-center justify-between">
                <div class="flex items-center space-x-4">
                    <img src="https://picsum.photos/seed/current/50/50.jpg" alt="当前播放" class="w-12 h-12 rounded">
                    <div>
                        <div class="font-medium">七里香</div>
                        <div class="text-sm text-gray-500">周杰伦</div>
                    </div>
                </div>
                <div class="flex items-center space-x-4">
                    <button class="text-gray-600 hover:text-gray-800">
                        <i class="fas fa-step-backward"></i>
                    </button>
                    <button class="bg-red-500 text-white w-10 h-10 rounded-full hover:bg-red-600">
                        <i class="fas fa-play"></i>
                    </button>
                    <button class="text-gray-600 hover:text-gray-800">
                        <i class="fas fa-step-forward"></i>
                    </button>
                </div>
                <div class="flex items-center space-x-4">
                    <span class="text-sm text-gray-500">1:23 / 4:56</span>
                    <div class="w-48 bg-gray-200 rounded-full h-2">
                        <div class="bg-red-500 h-2 rounded-full" style="width: 30%"></div>
                    </div>
                    <button class="text-gray-600 hover:text-gray-800">
                        <i class="fas fa-volume-up"></i>
                    </button>
                </div>
            </div>
        </div>
    </div>
    <script>
        // 排行榜数据
        const rankData = {
            hot: [
                { rank: 1, title: "晴天", artist: "周杰伦", album: "叶惠美", duration: "4:29", cover: "https://picsum.photos/seed/song1/50/50.jpg" },
                { rank: 2, title: "七里香", artist: "周杰伦", album: "七里香", duration: "4:59", cover: "https://picsum.photos/seed/song2/50/50.jpg" },
                { rank: 3, title: "稻香", artist: "周杰伦", album: "魔杰座", duration: "3:43", cover: "https://picsum.photos/seed/song3/50/50.jpg" },
                { rank: 4, title: "夜曲", artist: "周杰伦", album: "十一月的萧邦", duration: "3:46", cover: "https://picsum.photos/seed/song4/50/50.jpg" },
                { rank: 5, title: "告白气球", artist: "周杰伦", album: "周杰伦的床边故事", duration: "3:35", cover: "https://picsum.photos/seed/song5/50/50.jpg" },
                { rank: 6, title: "青花瓷", artist: "周杰伦", album: "我很忙", duration: "3:57", cover: "https://picsum.photos/seed/song6/50/50.jpg" },
                { rank: 7, title: "等你下课", artist: "周杰伦", album: "等你下课", duration: "4:10", cover: "https://picsum.photos/seed/song7/50/50.jpg" },
                { rank: 8, title: "听妈妈的话", artist: "周杰伦", album: "依然范特西", duration: "4:23", cover: "https://picsum.photos/seed/song8/50/50.jpg" },
                { rank: 9, title: "简单爱", artist: "周杰伦", album: "范特西", duration: "4:30", cover: "https://picsum.photos/seed/song9/50/50.jpg" },
                { rank: 10, title: "龙卷风", artist: "周杰伦", album: "Jay", duration: "4:12", cover: "https://picsum.photos/seed/song10/50/50.jpg" }
            ],
            new: [
                { rank: 1, title: "错位时空", artist: "艾辰", album: "错位时空", duration: "3:48", cover: "https://picsum.photos/seed/newsong1/50/50.jpg" },
                { rank: 2, title: "起风了", artist: "买辣椒也用券", album: "起风了", duration: "5:21", cover: "https://picsum.photos/seed/newsong2/50/50.jpg" },
                { rank: 3, title: "孤勇者", artist: "陈奕迅", album: "英雄联盟", duration: "4:17", cover: "https://picsum.photos/seed/newsong3/50/50.jpg" },
                { rank: 4, title: "漠河舞厅", artist: "柳爽", album: "漠河舞厅", duration: "4:12", cover: "https://picsum.photos/seed/newsong4/50/50.jpg" },
                { rank: 5, title: "光年之外", artist: "邓紫棋", album: "光年之外", duration: "4:12", cover: "https://picsum.photos/seed/newsong5/50/50.jpg" }
            ],
            original: [
                { rank: 1, title: "年少有为", artist: "李荣浩", album: "耳朵", duration: "3:39", cover: "https://picsum.photos/seed/original1/50/50.jpg" },
                { rank: 2, title: "年少有为", artist: "李荣浩", album: "耳朵", duration: "3:39", cover: "https://picsum.photos/seed/original2/50/50.jpg" },
                { rank: 3, title: "年少有为", artist: "李荣浩", album: "耳朵", duration: "3:39", cover: "https://picsum.photos/seed/original3/50/50.jpg" }
            ],
            global: [
                { rank: 1, title: "Blinding Lights", artist: "The Weeknd", album: "After Hours", duration: "3:22", cover: "https://picsum.photos/seed/global1/50/50.jpg" },
                { rank: 2, title: "Shape of You", artist: "Ed Sheeran", album: "÷", duration: "3:53", cover: "https://picsum.photos/seed/global2/50/50.jpg" },
                { rank: 3, title: "Bad Guy", artist: "Billie Eilish", album: "When We All Fall Asleep", duration: "3:14", cover: "https://picsum.photos/seed/global3/50/50.jpg" }
            ],
            kpop: [
                { rank: 1, title: "Dynamite", artist: "BTS", album: "Dynamite", duration: "3:19", cover: "https://picsum.photos/seed/kpop1/50/50.jpg" },
                { rank: 2, title: "How You Like That", artist: "BLACKPINK", album: "How You Like That", duration: "3:01", cover: "https://picsum.photos/seed/kpop2/50/50.jpg" },
                { rank: 3, title: "Psycho", artist: "Red Velvet", album: "The ReVe Festival: Finale", duration: "4:45", cover: "https://picsum.photos/seed/kpop3/50/50.jpg" }
            ]
        };
        // 渲染排行榜
        function renderRankList(rankType = 'hot') {
            const rankList = document.getElementById('rankList');
            const songs = rankData[rankType] || [];
            rankList.innerHTML = songs.map((song, index) => `
                <div class="rank-item flex items-center px-6 py-3 hover:bg-gray-50 cursor-pointer">
                    <div class="rank-number w-12 text-center">
                        ${song.rank <= 3 ? 
                            `<span class="text-2xl font-bold ${song.rank === 1 ? 'text-red-500' : song.rank === 2 ? 'text-orange-500' : 'text-yellow-500'}">${song.rank}</span>` :
                            `<span class="text-lg text-gray-600">${song.rank}</span>`
                        }
                    </div>
                    <img src="${song.cover}" alt="${song.title}" class="w-12 h-12 rounded ml-4">
                    <div class="flex-1 ml-4">
                        <div class="font-medium">${song.title}</div>
                    </div>
                    <div class="w-24 text-gray-600">${song.artist}</div>
                    <div class="w-24 text-gray-500 text-sm">${song.album}</div>
                    <div class="w-24 text-gray-500 text-sm">${song.duration}</div>
                    <div class="w-16 text-right">
                        <button class="play-btn text-red-500 hover:text-red-600">
                            <i class="fas fa-play-circle text-2xl"></i>
                        </button>
                    </div>
                </div>
            `).join('');
        }
        // 初始化
        document.addEventListener('DOMContentLoaded', function() {
            renderRankList('hot');
            // 排行榜切换
            document.querySelectorAll('.rank-list-item').forEach(item => {
                item.addEventListener('click', function(e) {
                    e.preventDefault();
                    // 移除所有active类
                    document.querySelectorAll('.rank-list-item').forEach(i => {
                        i.classList.remove('bg-gray-100');
                    });
                    // 添加active类
                    this.classList.add('bg-gray-100');
                    // 获取排行榜类型并渲染
                    const rankType = this.dataset.rank;
                    renderRankList(rankType);
                });
            });
            // 默认选中第一个
            document.querySelector('.rank-list-item').classList.add('bg-gray-100');
        });
        // 播放按钮点击事件
        document.addEventListener('click', function(e) {
            if (e.target.closest('.play-btn')) {
                e.stopPropagation();
                // 这里可以添加播放逻辑
                console.log('播放歌曲');
            }
        });
    </script>
</body>
</html>

这个QQ音乐排行榜页面包含了以下功能特点:

  1. 现代化设计:使用Tailwind CSS创建了美观的界面,配色方案参考了QQ音乐的品牌色

  2. 完整的排行榜系统

    • 左侧排行榜列表(飙升榜、新歌榜、原创榜等)
    • 右侧详细的排行榜内容
    • 点击左侧可切换不同的排行榜
  3. 丰富的交互效果

    QQ音乐网页版排行榜页面html
    (图片来源网络,侵删)
    • 鼠标悬停时的动画效果
    • 排名数字的缩放动画
    • 播放按钮的淡入效果
    • 卡片的悬浮效果
  4. 功能模块

    • 顶部导航栏带搜索功能
    • 热门推荐侧边栏
    • 排行榜列表展示
    • 相关推荐专辑
    • 底部播放器
  5. 响应式设计:适配不同屏幕尺寸,在移动设备上也能良好显示

页面数据通过JavaScript动态生成,可以轻松扩展更多的排行榜类型和歌曲数据,所有的交互功能都已实现,包括排行榜切换、播放按钮等。

QQ音乐网页版排行榜页面html
(图片来源网络,侵删)