米表系统 简约版

文章摘要
The article presents a simplified version of a domain trading platform with support for switching between Chinese and English, as well as between light and dark themes. It includes a responsive design displaying domain names in a grid layout, sorted by prioritizing two-letter and two-digit prefixes. The page also features a contact modal with a WeChat and email address. All interface texts and buttons are translated into both languages, and the site uses a localStorage system to remember user preferences. The code defines domain groups and interactive behaviors using HTML, CSS, and JavaScript.
— 文章部分摘要由DeepSeek深度思考而成

支持中英切换   颜色切换

演示: 演示地址

图片[1]|米表系统 简约版|不死鸟资源网
图片[2]|米表系统 简约版|不死鸟资源网
<!DOCTYPE html>
<html lang="zh-CN" data-theme="light">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>域名交易中心 - Domain Market</title>
    <style>
        :root {
            --primary-color: #5D35D4;
            --accent-color: #E4405F;
            --bg-color: #ffffff;
            --text-color: #333333;
            --card-bg: #ffffff;
            --border-color: rgba(0,0,0,0.1);
        }

        [data-theme="dark"] {
            --primary-color: #00dc82;
            --accent-color: #ff4757;
            --bg-color: #1a1a1a;
            --text-color: #ffffff;
            --card-bg: #2d2d2d;
            --border-color: rgba(255,255,255,0.1);
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            -webkit-tap-highlight-color: transparent;
            transition: background-color 0.3s, color 0.3s;
        }

        body {
            font-family: 'Segoe UI', sans-serif;
            background-color: var(--bg-color);
            color: var(--text-color);
            font-size: 0.9rem;
        }

        .control-group {
            position: fixed;
            top: 1rem;
            right: 1rem;
            display: flex;
            gap: 0.5rem;
            z-index: 1000;
        }

        .theme-switcher,
        .lang-switcher {
            background: var(--primary-color);
            color: white;
            border: none;
            padding: 0.5rem 1rem;
            border-radius: 25px;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 0.5rem;
            backdrop-filter: blur(5px);
            font-size: 0.9rem;
        }

        nav {
            background: var(--primary-color);
            padding: 1rem;
            color: white;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }

        nav h1 {
            font-size: 1.5rem;
            text-align: center;
        }

        .container {
            max-width: 1200px;
            margin: 2rem auto;
            padding: 0 1rem;
        }

        .domain-group {
            margin: 3rem 0;
        }

        .group-title {
            color: var(--primary-color);
            border-left: 4px solid var(--accent-color);
            padding-left: 1rem;
            margin: 1.5rem 0;
            font-size: 1.4rem;
        }

        .domain-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 1.5rem;
            padding: 1rem;
        }

        .domain-card {
            position: relative;
            overflow: visible;
            border-radius: 10px;
            background: transparent;
            cursor: pointer;
        }

        .domain-card::before {
            content: '';
            position: absolute;
            top: -1px;
            left: -1px;
            right: -1px;
            bottom: -1px;
            background: linear-gradient(90deg, #ff6b6b 25%, #4ecdc4 50%, #45b7d1 75%);
            background-size: 400% 100%;
            animation: borderMarquee 5s linear infinite;
            z-index: 0;
            border-radius: 11px;
        }

        @keyframes borderMarquee {
            0% { background-position: 200% 50%; }
            100% { background-position: -100% 50%; }
        }

        .domain-card-inner {
            position: relative;
            z-index: 1;
            background: var(--card-bg);
            border-radius: 10px;
            margin: 1px;
            padding: 1.5rem;
            box-shadow: 0 3px 10px var(--border-color);
        }

        .domain-name {
            font-size: 1.2rem;
            color: var(--text-color);
            margin-bottom: 0.5rem;
        }

        .price-tag {
            background: var(--accent-color);
            color: white;
            border-radius: 20px;
            font-weight: bold;
            position: absolute;
            z-index: 2;
            box-shadow: 0 2px 5px rgba(0,0,0,0.2);
            white-space: nowrap;
        }

        .btn-register {
            background: var(--primary-color);
            color: white;
            border: none;
            padding: 0.5rem 1.5rem;
            border-radius: 5px;
            cursor: pointer;
            min-width: 100px;
            transition: transform 0.2s;
            font-size: 0.9rem;
        }

        .btn-register:active {
            transform: scale(0.95);
        }

        .alert-modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0,0,0,0.5);
            justify-content: center;
            align-items: center;
            z-index: 999;
        }

        .alert-content {
            background: var(--card-bg);
            padding: 2rem;
            border-radius: 10px;
            text-align: center;
            box-shadow: 0 0 20px var(--border-color);
            max-width: 300px;
            color: var(--text-color);
            font-size: 0.9rem;
        }

        .close-btn {
            background: var(--accent-color);
            color: white;
            border: none;
            padding: 0.5rem 1.5rem;
            border-radius: 5px;
            cursor: pointer;
            margin-top: 1rem;
        }

        @media (max-width: 768px) {
            nav {
                padding-top: 3.5rem;
                min-height: 4rem;
            }
            .control-group {
                top: 1rem;
                right: 1rem;
                flex-direction: column;
                gap: 0.3rem;
            }
            .theme-switcher span {
                display: none;
            }
            .price-tag {
                padding: 0.2rem 1rem;
                font-size: 0.8rem;
                top: -12px;
                right: -15px;
            }
            .container {
                padding: 0 0.5rem;
            }
            .domain-grid {
                display: grid !important;
                grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
                gap: 1rem;
            }
            .domain-card-inner {
                padding: 1rem;
            }
            .domain-name {
                font-size: 1.1rem;
                margin-bottom: 0.3rem;
            }
            .btn-register {
                padding: 0.4rem 1.2rem;
                font-size: 0.85rem;
            }
        }

        @media (min-width: 769px) {
            .price-tag {
                padding: 0.3rem 1rem;
                font-size: 0.9rem;
                top: -15px;
                right: -18px;
            }
        }
    </style>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
    <div class="control-group">
        <button class="lang-switcher" id="langButton">EN</button>
        <button class="theme-switcher" id="themeButton">
            <i class="fas fa-moon"></i>
            <span>深色模式</span>
        </button>
    </div>

    <nav>
        <h1>域名交易中心</h1>
    </nav>

    <div class="container">
        <div id="domainList"></div>
    </div>

    <div id="customAlert" class="alert-modal">
        <div class="alert-content">
            <h3>联系方式</h3>
            <p>微信:1382836</p>
            <p>邮箱:168666@163.com</p>
            <button class="close-btn">关闭</button>
        </div>
    </div>

    <script>
        const translations = {
            'zh-CN': {
                title: "域名交易中心",
                groupTitle: "域名",
                registerBtn: "立即购买",
                contactTitle: "联系方式",
                wechat: "微信",
                email: "邮箱",
                closeBtn: "关闭",
                darkMode: "深色模式",
                lightMode: "浅色模式",
                priceSymbol: "¥",
                quote: "报价"
            },
            'en-US': {
                title: "Domain Marketplace",
                groupTitle: "Domains",
                registerBtn: "Buy Now",
                contactTitle: "Contact Info",
                wechat: "WeChat",
                email: "Email",
                closeBtn: "Close",
                darkMode: "Dark Mode",
                lightMode: "Light Mode",
                priceSymbol: "CN¥",
                quote: "Quote"
            }
        };

        let currentTheme = localStorage.getItem('theme') || 'light';
        let currentLang = localStorage.getItem('lang') || 'zh-CN';
        let domainGroups = [
            { 
                suffix: ".ma",
                domains: ['pp.ma', 'uu.ma', '22.ma', '222.ma', '333.ma', '666.ma', '999.ma', '55.ma']
            },
            { 
                suffix: ".ma (英文)",
                domains: ['doge.ma', 'bbs.ma']
            },
            { 
                suffix: ".idc",
                domains: ['idc.im', 'idc.cm', 'idc.gg']
            }
        ];

        function setTheme(theme) {
            document.documentElement.setAttribute('data-theme', theme);
            localStorage.setItem('theme', theme);
            const themeButton = document.getElementById('themeButton');
            themeButton.innerHTML = theme === 'dark' 
                ? `<i class="fas fa-sun"></i><span>${translations[currentLang].lightMode}</span>`
                : `<i class="fas fa-moon"></i><span>${translations[currentLang].darkMode}</span>`;
        }

        document.getElementById('themeButton').addEventListener('click', () => {
            currentTheme = currentTheme === 'dark' ? 'light' : 'dark';
            setTheme(currentTheme);
        });

        function updateContent() {
            document.querySelector('nav h1').textContent = translations[currentLang].title;
            document.querySelector('.alert-content h3').textContent = translations[currentLang].contactTitle;
            document.querySelectorAll('.alert-content p')[0].innerHTML = 
                `${translations[currentLang].wechat}:1382836`;
            document.querySelectorAll('.alert-content p')[1].innerHTML = 
                `${translations[currentLang].email}:168666@163.com`;
            document.querySelector('.close-btn').textContent = translations[currentLang].closeBtn;

            document.querySelectorAll('.group-title').forEach(el => {
                el.textContent = `${el.dataset.suffix} ${translations[currentLang].groupTitle}`;
            });

            document.querySelectorAll('.btn-register').forEach(btn => {
                btn.textContent = translations[currentLang].registerBtn;
            });

            document.querySelectorAll('.price-tag').forEach(tag => {
                tag.textContent = `${translations[currentLang].priceSymbol}${translations[currentLang].quote}`;
            });

            document.getElementById('langButton').textContent = 
                currentLang === 'zh-CN' ? 'EN' : '中文';
        }

        document.getElementById('langButton').addEventListener('click', () => {
            currentLang = currentLang === 'zh-CN' ? 'en-US' : 'zh-CN';
            localStorage.setItem('lang', currentLang);
            initDomains();
            updateContent();
            setTheme(currentTheme);
        });

        function sortDomains(domains) {
            return domains.sort((a, b) => {
                const prefixA = a.split('.')[0];
                const prefixB = b.split('.')[0];
                
                const isDoubleLetter = (str) => str.length === 2 && /^[a-zA-Z]{2}$/.test(str);
                const isDoubleNumber = (str) => str.length === 2 && /^\d{2}$/.test(str);

                if (isDoubleLetter(prefixA) && !isDoubleLetter(prefixB)) return -1;
                if (isDoubleLetter(prefixB) && !isDoubleLetter(prefixA)) return 1;
                if (isDoubleNumber(prefixA) && !isDoubleNumber(prefixB)) return -1;
                if (isDoubleNumber(prefixB) && !isDoubleNumber(prefixA)) return 1;
                return 0;
            });
        }

        function createDomainCard(domain) {
            const card = document.createElement('div');
            card.className = 'domain-card';
            
            const inner = document.createElement('div');
            inner.className = 'domain-card-inner';

            const price = document.createElement('div');
            price.className = 'price-tag';
            price.textContent = `${translations[currentLang].priceSymbol}${translations[currentLang].quote}`;

            const name = document.createElement('div');
            name.className = 'domain-name';
            name.textContent = domain;

            const button = document.createElement('button');
            button.className = 'btn-register';
            button.textContent = translations[currentLang].registerBtn;

            inner.appendChild(price);
            inner.appendChild(name);
            inner.appendChild(button);
            card.appendChild(inner);

            card.addEventListener('click', () => showAlert());
            return card;
        }

        function initDomains() {
            const container = document.getElementById('domainList');
            container.innerHTML = '';
            
            domainGroups = domainGroups.map(group => ({
                ...group,
                domains: sortDomains([...group.domains])
            }));

            if(domainGroups.length === 0) {
                container.innerHTML = '<p style="text-align:center">暂无可用域名</p>';
                return;
            }

            domainGroups.forEach(group => {
                const groupDiv = document.createElement('div');
                groupDiv.className = 'domain-group';
                
                const title = document.createElement('h2');
                title.className = 'group-title';
                title.dataset.suffix = group.suffix;
                title.textContent = `${group.suffix} ${translations[currentLang].groupTitle}`;
                
                const grid = document.createElement('div');
                grid.className = 'domain-grid';

                group.domains.forEach(domain => {
                    grid.appendChild(createDomainCard(domain));
                });

                groupDiv.appendChild(title);
                groupDiv.appendChild(grid);
                container.appendChild(groupDiv);
            });
        }

        function showAlert() {
            document.getElementById('customAlert').style.display = 'flex';
        }

        document.querySelector('.close-btn').addEventListener('click', () => {
            document.getElementById('customAlert').style.display = 'none';
        });

        document.addEventListener('DOMContentLoaded', function() {
            setTheme(currentTheme);
            initDomains();
            updateContent();
        });

        window.addEventListener('resize', () => {
            document.querySelector('.container').style.padding = 
                window.innerWidth < 768 ? '0 0.5rem' : '0 1rem';
        });
    </script>
</body>
</html>
本站文章部分内容可能来源于网络,仅供大家学习参考,如有侵权,请联系站长📧cutwork@qq.com进行删除处理!
米表系统 简约版|不死鸟资源网
米表系统 简约版
此内容为免费阅读,请登录后查看
¥0
限时特惠
¥99
文章采用CC BY-NC-SA 4.0许可协议授权
免费阅读
THE END
点赞10 分享