前端实现盲盒个人中心


<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>未来盲盒 - 个人中心</title>
    <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap');
        .cyber-glow {
            text-shadow: 0 0 10px #3b82f6, 0 0 20px #3b82f6;
        }
        .card-hover:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 25px rgba(59, 130, 246, 0.5);
        }
        .neon-border {
            border: 1px solid rgba(59, 130, 246, 0.3);
            box-shadow: inset 0 0 10px rgba(59, 130, 246, 0.3), 0 0 10px rgba(59, 130, 246, 0.3);
        }
        .progress-bar {
            height: 6px;
            background: linear-gradient(90deg, #3b82f6 0%, #8b5cf6 100%);
        }
    </style>
</head>
<body class="bg-black text-gray-100 font-sans">
    <div class="container mx-auto px-4 py-8">
        <!-- 用户信息头部 -->
        <header class="flex items-center mb-12 p-6 bg-gray-900 rounded-xl neon-border">
            <div class="w-20 h-20 rounded-full bg-gradient-to-br from-blue-900 to-black overflow-hidden mr-6">
                <img src="https://picsum.photos/200/300?random=avatar" alt="用户头像" class="w-full h-full object-cover">
            </div>
            <div class="flex-1">
                <h1 class="text-2xl font-bold cyber-glow font-['Orbitron']">CYBER_USER_001</h1>
                <p class="text-gray-400 mb-3">探索者等级: <span class="text-blue-400">Lv.12</span></p>
                <div class="w-full bg-gray-700 rounded-full h-2.5">
                    <div class="progress-bar h-2.5 rounded-full" style="width: 65%"></div>
                </div>
            </div>
            <button class="px-6 py-2 bg-blue-600 rounded-lg hover:bg-blue-500 transition">
                <i class="fas fa-cog mr-2"></i>设置
            </button>
        </header>

        <!-- 资产概览 -->
        <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-12">
            <div class="bg-gray-900 rounded-xl p-6 neon-border">
                <h2 class="text-xl font-bold mb-4 cyber-glow">我的资产</h2>
                <div class="space-y-4">
                    <div class="flex justify-between items-center">
                        <span class="text-gray-400">账户余额</span>
                        <span class="text-2xl font-bold">¥328.50</span>
                    </div>
                    <div class="flex justify-between items-center">
                        <span class="text-gray-400">盲盒数量</span>
                        <span class="text-2xl font-bold">47</span>
                    </div>
                    <div class="flex justify-between items-center">
                        <span class="text-gray-400">收藏品</span>
                        <span class="text-2xl font-bold">23</span>
                    </div>
                </div>
            </div>

            <div class="bg-gray-900 rounded-xl p-6 neon-border">
                <h2 class="text-xl font-bold mb-4 cyber-glow">最近获得</h2>
                <div id="recent-items" class="grid grid-cols-3 gap-3">
                    <!-- 动态加载最近获得物品 -->
                </div>
            </div>

            <div class="bg-gray-900 rounded-xl p-6 neon-border">
                <h2 class="text-xl font-bold mb-4 cyber-glow">成就系统</h2>
                <div class="space-y-4">
                    <div class="flex items-center">
                        <div class="w-10 h-10 rounded-full bg-yellow-500 flex items-center justify-center mr-3">
                            <i class="fas fa-trophy text-white"></i>
                        </div>
                        <div>
                            <h3 class="font-medium">首次开盒</h3>
                            <p class="text-xs text-gray-400">2023-05-10 完成</p>
                        </div>
                    </div>
                    <div class="flex items-center">
                        <div class="w-10 h-10 rounded-full bg-gray-700 flex items-center justify-center mr-3">
                            <i class="fas fa-lock text-gray-500"></i>
                        </div>
                        <div>
                            <h3 class="font-medium text-gray-500">十连抽大师</h3>
                            <p class="text-xs text-gray-500">完成1次十连抽解锁</p>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <!-- 收藏品展示 -->
        <div class="bg-gray-900 rounded-xl p-6 neon-border mb-12">
            <div class="flex justify-between items-center mb-6">
                <h2 class="text-2xl font-bold cyber-glow">我的收藏</h2>
                <div class="flex space-x-3">
                    <button class="px-4 py-2 bg-gray-800 rounded-lg hover:bg-gray-700 transition">
                        <i class="fas fa-filter mr-2"></i>筛选
                    </button>
                    <button class="px-4 py-2 bg-gray-800 rounded-lg hover:bg-gray-700 transition">
                        <i class="fas fa-sort mr-2"></i>排序
                    </button>
                </div>
            </div>
            <div id="collection-grid" class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 gap-4">
                <!-- 动态加载收藏品 -->
            </div>
        </div>

        <!-- 开盒记录 -->
        <div class="bg-gray-900 rounded-xl p-6 neon-border">
            <h2 class="text-2xl font-bold mb-6 cyber-glow">开盒记录</h2>
            <div class="overflow-x-auto">
                <table class="w-full">
                    <thead>
                        <tr class="text-gray-400 border-b border-gray-700">
                            <th class="pb-3 text-left">时间</th>
                            <th class="pb-3 text-left">物品名称</th>
                            <th class="pb-3 text-left">稀有度</th>
                            <th class="pb-3 text-left">系列</th>
                        </tr>
                    </thead>
                    <tbody id="history-table">
                        <!-- 动态加载开盒记录 -->
                    </tbody>
                </table>
            </div>
        </div>
    </div>

    <!-- 底部导航 -->
    <nav class="fixed bottom-0 left-0 right-0 bg-gray-900 border-t border-gray-800 flex justify-around py-3">
        <a href="#" class="flex flex-col items-center text-blue-400">
            <i class="fas fa-home text-xl"></i>
            <span class="text-xs mt-1">首页</span>
        </a>
        <a href="#" class="flex flex-col items-center text-gray-400">
            <i class="fas fa-box-open text-xl"></i>
            <span class="text-xs mt-1">盲盒</span>
        </a>
        <a href="#" class="flex flex-col items-center text-gray-400">
            <i class="fas fa-user text-xl"></i>
            <span class="text-xs mt-1">我的</span>
        </a>
    </nav>

    <script src="app.js"></script>
</body>
</html>

app.js


// 用户数据
const userData = {
    username: "CYBER_USER_001",
    level: 12,
    exp: 65,
    balance: 328.50,
    boxCount: 47,
    collectionCount: 23,
    recentItems: [
        { id: "i001", name: "量子处理器", image: "https://picsum.photos/200/300?random=101", rarity: "legendary" },
        { id: "i002", name: "全息投影仪", image: "https://picsum.photos/200/300?random=102", rarity: "epic" },
        { id: "i003", name: "神经接口", image: "https://picsum.photos/200/300?random=103", rarity: "rare" }
    ],
    collection: [
        { id: "i001", name: "量子处理器", image: "https://picsum.photos/200/300?random=101", rarity: "legendary" },
        { id: "i002", name: "全息投影仪", image: "https://picsum.photos/200/300?random=102", rarity: "epic" },
        { id: "i003", name: "神经接口", image: "https://picsum.photos/200/300?random=103", rarity: "rare" },
        { id: "i004", name: "智能纳米服", image: "https://picsum.photos/200/300?random=104", rarity: "uncommon" },
        { id: "i005", name: "AR眼镜", image: "https://picsum.photos/200/300?random=105", rarity: "common" },
        { id: "i006", name: "仿生手臂", image: "https://picsum.photos/200/300?random=106", rarity: "rare" },
        { id: "i007", name: "记忆芯片", image: "https://picsum.photos/200/300?random=107", rarity: "epic" },
        { id: "i008", name: "离子推进器", image: "https://picsum.photos/200/300?random=108", rarity: "legendary" }
    ],
    history: [
        { id: "h001", itemName: "量子处理器", time: "2023-05-15 14:30", rarity: "legendary", series: "科技未来" },
        { id: "h002", itemName: "全息投影仪", time: "2023-05-14 10:15", rarity: "epic", series: "科技未来" },
        { id: "h003", itemName: "神经接口", time: "2023-05-12 18:45", rarity: "rare", series: "科技未来" },
        { id: "h004", itemName: "智能纳米服", time: "2023-05-10 09:20", rarity: "uncommon", series: "科技未来" },
        { id: "h005", itemName: "AR眼镜", time: "2023-05-08 16:10", rarity: "common", series: "科技未来" }
    ]
};

// 初始化页面
document.addEventListener('DOMContentLoaded', () => {
    loadUserProfile();
    loadRecentItems();
    loadCollection();
    loadHistory();
});

function loadUserProfile() {
    document.title = `${userData.username} - 未来盲盒`;
}

function loadRecentItems() {
    const container = document.getElementById('recent-items');
    container.innerHTML = userData.recentItems.map(item => `
        <div class="relative group">
            <div class="aspect-square bg-gray-800 rounded-lg overflow-hidden">
                <img src="${item.image}" alt="${item.name}" class="w-full h-full object-cover">
            </div>
            <div class="absolute inset-0 bg-black bg-opacity-60 flex items-center justify-center opacity-0 group-hover:opacity-100 transition">
                <span class="text-xs ${getRarityColor(item.rarity)}">${getRarityText(item.rarity)}</span>
            </div>
        </div>
    `).join('');
}

function loadCollection() {
    const container = document.getElementById('collection-grid');
    container.innerHTML = userData.collection.map(item => `
        <div class="bg-gray-800 rounded-lg overflow-hidden card-hover transition">
            <div class="aspect-square bg-gray-700 relative">
                <img src="${item.image}" alt="${item.name}" class="w-full h-full object-cover">
                <div class="absolute top-2 right-2 ${getRarityColor(item.rarity)} text-xs px-2 py-1 rounded-full bg-black bg-opacity-50">
                    ${getRarityText(item.rarity)}
                </div>
            </div>
            <div class="p-3">
                <h3 class="font-medium truncate">${item.name}</h3>
            </div>
        </div>
    `).join('');
}

function loadHistory() {
    const container = document.getElementById('history-table');
    container.innerHTML = userData.history.map(item => `
        <tr class="border-b border-gray-800 hover:bg-gray-800 transition">
            <td class="py-3 text-sm">${item.time}</td>
            <td class="py-3">${item.itemName}</td>
            <td class="py-3 ${getRarityColor(item.rarity)}">${getRarityText(item.rarity)}</td>
            <td class="py-3 text-gray-400">${item.series}</td>
        </tr>
    `).join('');
}

function getRarityText(rarity) {
    const rarityMap = {
        common: "普通",
        uncommon: "稀有",
        rare: "珍贵",
        epic: "史诗",
        legendary: "传说"
    };
    return rarityMap[rarity] || "";
}

function getRarityColor(rarity) {
    const colorMap = {
        common: "text-gray-400",
        uncommon: "text-green-400",
        rare: "text-blue-400",
        epic: "text-purple-400",
        legendary: "text-yellow-400"
    };
    return colorMap[rarity] || "text-gray-400";
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值