现代Web表情选择器组件:分类系统与实现详解

  Java   46分钟   266浏览   3评论

你好呀,我是小邹。今天给博客的emoji表情进行了归类、补充,具体优化如下。

img

表情选择器的核心价值在于其分类系统。本文将深入解析表情分类体系的设计与实现,通过完整代码示例展示如何构建一个专业级的表情选择器组件。

一、表情分类系统设计

表情选择器采用7大分类体系,每个分类包含特定主题的表情符号:

1.1 分类结构设计

<div class="emoji-tabs">
    <!-- 7个分类标签 -->
    <button class="emoji-tab active" data-category="smileys">
        <i class="far fa-smile"></i> 表情
    </button>
    <button class="emoji-tab" data-category="people">
        <i class="fas fa-user"></i> 人物
    </button>
    <button class="emoji-tab" data-category="animals">
        <i class="fas fa-paw"></i> 动物
    </button>
    <button class="emoji-tab" data-category="food">
        <i class="fas fa-utensils"></i> 食物
    </button>
    <button class="emoji-tab" data-category="travel">
        <i class="fas fa-plane"></i> 旅行
    </button>
    <button class="emoji-tab" data-category="objects">
        <i class="fas fa-lightbulb"></i> 物体
    </button>
    <button class="emoji-tab" data-category="symbols">
        <i class="fas fa-heart"></i> 符号
    </button>
</div>

<div class="emoji-panels">
    <!-- 7个对应面板 -->
    <div class="emoji-panel active" id="smileys">...</div>
    <div class="emoji-panel" id="people">...</div>
    <div class="emoji-panel" id="animals">...</div>
    <div class="emoji-panel" id="food">...</div>
    <div class="emoji-panel" id="travel">...</div>
    <div class="emoji-panel" id="objects">...</div>
    <div class="emoji-panel" id="symbols">...</div>
</div>

1.2 分类内容详解

分类 图标 表情数量 主要内容 代表表情
表情 😀 80+ 面部表情、情感 😂 😍 😎 😢 😡
人物 👤 70+ 身体部位、职业 👶 👮‍♀️ 👩‍🍳 👨‍⚕️ 👵
动物 🐾 60+ 动物、自然生物 🐶 🐱 🦁 🐢 🦋
食物 🍕 80+ 食物、饮料 🍎 🍕 🍦 ☕ 🍷
旅行 ✈️ 70+ 地点、交通工具 🏠 🏖️ 🚗 ✈️ ⛵
物体 💡 90+ 日常物品、电子设备 📱 💻 ⌚ 💡 🔑
符号 ❤️ 80+ 标志、形状、心形 ❤️ ⭐ ✅ ❓ ♻️

二、分类面板实现代码

2.1 表情与情感 (smileys)

<div class="emoji-panel active" id="smileys">
    <!-- 笑脸 -->
    <div class="emoji-button">😀</div> <!-- 大笑 -->
    <div class="emoji-button">😃</div> <!-- 开心 -->
    <div class="emoji-button">😄</div> <!-- 露齿笑 -->
    <div class="emoji-button">😁</div> <!-- 喜悦 -->

    <!-- 爱心眼 -->
    <div class="emoji-button">🥰</div> <!-- 带爱心笑脸 -->
    <div class="emoji-button">😍</div> <!-- 爱心眼 -->

    <!-- 搞怪 -->
    <div class="emoji-button">😜</div> <!-- 吐舌眨眼 -->
    <div class="emoji-button">🤪</div> <!-- 疯狂脸 -->

    <!-- 负面情绪 -->
    <div class="emoji-button">😢</div> <!-- 哭泣 -->
    <div class="emoji-button">😠</div> <!-- 生气 -->
    <div class="emoji-button">😱</div> <!-- 尖叫 -->

    <!-- 疲倦 -->
    <div class="emoji-button">😴</div> <!-- 睡觉 -->
    <div class="emoji-button">🥱</div> <!-- 打哈欠 -->

    <!-- 特殊 -->
    <div class="emoji-button">🥺</div> <!-- 恳求脸 -->
    <div class="emoji-button">😷</div> <!-- 口罩脸 -->

    <!-- 82个表情... -->
</div>

2.2 人物与身体 (people)

<div class="emoji-panel" id="people">
    <!-- 手势 -->
    <div class="emoji-button">👋</div> <!-- 挥手 -->
    <div class="emoji-button">👍</div> <!-- 点赞 -->
    <div class="emoji-button">👌</div> <!-- OK -->
    <div class="emoji-button">✌️</div> <!-- 胜利 -->

    <!-- 身体部位 -->
    <div class="emoji-button">👂</div> <!-- 耳朵 -->
    <div class="emoji-button">👃</div> <!-- 鼻子 -->
    <div class="emoji-button">👀</div> <!-- 眼睛 -->
    <div class="emoji-button">💪</div> <!-- 肌肉 -->

    <!-- 人物 -->
    <div class="emoji-button">👶</div> <!-- 婴儿 -->
    <div class="emoji-button">👧</div> <!-- 女孩 -->
    <div class="emoji-button">👩</div> <!-- 女人 -->
    <div class="emoji-button">👴</div> <!-- 老人 -->

    <!-- 职业 -->
    <div class="emoji-button">👮‍♀️</div> <!-- 女警察 -->
    <div class="emoji-button">👨‍⚕️</div> <!-- 男医生 -->
    <div class="emoji-button">👩‍🍳</div> <!-- 女厨师 -->
    <div class="emoji-button">👨‍🎓</div> <!-- 男学生 -->

    <!-- 73个表情... -->
</div>

2.3 动物与自然 (animals)

<div class="emoji-panel" id="animals">
    <!-- 哺乳动物 -->
    <div class="emoji-button">🐶</div> <!-- 狗 -->
    <div class="emoji-button">🐱</div> <!-- 猫 -->
    <div class="emoji-button">🦁</div> <!-- 狮子 -->
    <div class="emoji-button">🐯</div> <!-- 虎 -->

    <!-- 鸟类 -->
    <div class="emoji-button">🐦</div> <!-- 鸟 -->
    <div class="emoji-button">🦅</div> <!-- 鹰 -->
    <div class="emoji-button">🦉</div> <!-- 猫头鹰 -->

    <!-- 海洋生物 -->
    <div class="emoji-button">🐬</div> <!-- 海豚 -->
    <div class="emoji-button">🦈</div> <!-- 鲨鱼 -->
    <div class="emoji-button">🐙</div> <!-- 章鱼 -->

    <!-- 昆虫 -->
    <div class="emoji-button">🦋</div> <!-- 蝴蝶 -->
    <div class="emoji-button">🐝</div> <!-- 蜜蜂 -->
    <div class="emoji-button">🪲</div> <!-- 甲虫 -->

    <!-- 植物 -->
    <div class="emoji-button">🌹</div> <!-- 玫瑰 -->
    <div class="emoji-button">🌳</div> <!-- 大树 -->
    <div class="emoji-button">🌵</div> <!-- 仙人掌 -->

    <!-- 天气 -->
    <div class="emoji-button">☀️</div> <!-- 太阳 -->
    <div class="emoji-button">⛈️</div> <!-- 雷雨 -->
    <div class="emoji-button">❄️</div> <!-- 雪花 -->

    <!-- 65个表情... -->
</div>

2.4 食物与饮料 (food)

<div class="emoji-panel" id="food">
    <!-- 水果 -->
    <div class="emoji-button">🍎</div> <!-- 苹果 -->
    <div class="emoji-button">🍌</div> <!-- 香蕉 -->
    <div class="emoji-button">🍇</div> <!-- 葡萄 -->
    <div class="emoji-button">🍓</div> <!-- 草莓 -->

    <!-- 蔬菜 -->
    <div class="emoji-button">🍅</div> <!-- 番茄 -->
    <div class="emoji-button">🥦</div> <!-- 西兰花 -->
    <div class="emoji-button">🥕</div> <!-- 胡萝卜 -->

    <!-- 主食 -->
    <div class="emoji-button">🍞</div> <!-- 面包 -->
    <div class="emoji-button">🍚</div> <!-- 米饭 -->

    <!-- 快餐 -->
    <div class="emoji-button">🍕</div> <!-- 披萨 -->
    <div class="emoji-button">🍔</div> <!-- 汉堡 -->
    <div class="emoji-button">🌭</div> <!-- 热狗 -->

    <!-- 甜点 -->
    <div class="emoji-button">🍰</div> <!-- 蛋糕 -->
    <div class="emoji-button">🍦</div> <!-- 冰淇淋 -->
    <div class="emoji-button">🍫</div> <!-- 巧克力 -->

    <!-- 饮料 -->
    <div class="emoji-button"></div> <!-- 咖啡 -->
    <div class="emoji-button">🍵</div> <!-- 茶 -->
    <div class="emoji-button">🍷</div> <!-- 红酒 -->
    <div class="emoji-button">🍺</div> <!-- 啤酒 -->

    <!-- 85个表情... -->
</div>

2.5 旅行与地点 (travel)

<div class="emoji-panel" id="travel">
    <!-- 地点 -->
    <div class="emoji-button">🏠</div> <!-- 房屋 -->
    <div class="emoji-button">🏢</div> <!-- 办公楼 -->
    <div class="emoji-button">🏥</div> <!-- 医院 -->
    <div class="emoji-button">🏫</div> <!-- 学校 -->

    <!-- 景点 -->
    <div class="emoji-button">🗽</div> <!-- 自由女神 -->
    <div class="emoji-button">🗼</div> <!-- 东京塔 -->
    <div class="emoji-button">🏯</div> <!-- 日本城堡 -->

    <!-- 自然景观 -->
    <div class="emoji-button">🏔️</div> <!-- 雪山 -->
    <div class="emoji-button">🏖️</div> <!-- 沙滩 -->
    <div class="emoji-button">🏜️</div> <!-- 沙漠 -->

    <!-- 交通工具 -->
    <div class="emoji-button">🚗</div> <!-- 汽车 -->
    <div class="emoji-button">🚕</div> <!-- 出租车 -->
    <div class="emoji-button">🚲</div> <!-- 自行车 -->

    <div class="emoji-button">✈️</div> <!-- 飞机 -->
    <div class="emoji-button">🚀</div> <!-- 火箭 -->
    <div class="emoji-button"></div> <!-- 帆船 -->

    <!-- 旅行用品 -->
    <div class="emoji-button">🧳</div> <!-- 行李箱 -->
    <div class="emoji-button">🛎️</div> <!-- 服务铃 -->

    <!-- 72个表情... -->
</div>

2.6 物体 (objects)

<div class="emoji-panel" id="objects">
    <!-- 电子设备 -->
    <div class="emoji-button">📱</div> <!-- 手机 -->
    <div class="emoji-button">💻</div> <!-- 笔记本 -->
    <div class="emoji-button"></div> <!-- 手表 -->
    <div class="emoji-button">📷</div> <!-- 相机 -->

    <!-- 办公用品 -->
    <div class="emoji-button">📝</div> <!-- 备忘录 -->
    <div class="emoji-button">📎</div> <!-- 回形针 -->
    <div class="emoji-button">✂️</div> <!-- 剪刀 -->
    <div class="emoji-button">📌</div> <!-- 图钉 -->

    <!-- 家居物品 -->
    <div class="emoji-button">💡</div> <!-- 灯泡 -->
    <div class="emoji-button">🔑</div> <!-- 钥匙 -->
    <div class="emoji-button">🛏️</div> <!-- 床 -->
    <div class="emoji-button">🪑</div> <!-- 椅子 -->

    <!-- 乐器 -->
    <div class="emoji-button">🎸</div> <!-- 吉他 -->
    <div class="emoji-button">🎺</div> <!-- 小号 -->
    <div class="emoji-button">🎻</div> <!-- 小提琴 -->

    <!-- 运动器材 -->
    <div class="emoji-button"></div> <!-- 足球 -->
    <div class="emoji-button">🏀</div> <!-- 篮球 -->
    <div class="emoji-button">🎾</div> <!-- 网球 -->

    <!-- 95个表情... -->
</div>

2.7 符号 (symbols)

<div class="emoji-panel" id="symbols">
    <!-- 心形 -->
    <div class="emoji-button">❤️</div> <!-- 红心 -->
    <div class="emoji-button">💛</div> <!-- 黄心 -->
    <div class="emoji-button">💚</div> <!-- 绿心 -->
    <div class="emoji-button">💙</div> <!-- 蓝心 -->

    <!-- 形状 -->
    <div class="emoji-button"></div> <!-- 星星 -->
    <div class="emoji-button"></div> <!-- 闪烁 -->
    <div class="emoji-button">💫</div> <!-- 头晕 -->
    <div class="emoji-button"></div> <!-- 闪电 -->

    <!-- 标志 -->
    <div class="emoji-button"></div> <!-- 复选标记 -->
    <div class="emoji-button"></div> <!-- 叉号 -->
    <div class="emoji-button"></div> <!-- 感叹号 -->
    <div class="emoji-button"></div> <!-- 问号 -->

    <!-- 交通标志 -->
    <div class="emoji-button"></div> <!-- 禁止进入 -->
    <div class="emoji-button">🚫</div> <!-- 禁止 -->
    <div class="emoji-button">🅿️</div> <!-- 停车 -->

    <!-- 宗教符号 -->
    <div class="emoji-button">☮️</div> <!-- 和平符号 -->
    <div class="emoji-button">✝️</div> <!-- 拉丁十字 -->
    <div class="emoji-button">☪️</div> <!-- 星月 -->

    <!-- 83个表情... -->
</div>

三、分类系统关键技术实现

3.1 分类切换逻辑

// 获取所有标签和面板
const tabs = document.querySelectorAll('.emoji-tab');
const panels = document.querySelectorAll('.emoji-panel');

tabs.forEach(tab => {
    tab.addEventListener('click', () => {
        // 移除所有活动状态
        tabs.forEach(t => t.classList.remove('active'));
        panels.forEach(p => p.classList.remove('active'));

        // 激活当前标签
        tab.classList.add('active');

        // 显示对应面板
        const category = tab.dataset.category;
        document.getElementById(category).classList.add('active');
    });
});

3.2 分类数据管理

class EmojiManager {
    constructor() {
        this.categories = {
            smileys: [],
            people: [],
            animals: [],
            food: [],
            travel: [],
            objects: [],
            symbols: []
        };

        this.recent = [];
        this.favorites = [];
    }

    async loadData() {
        // 从API加载表情数据
        const response = await fetch('/api/emojis');
        const data = await response.json();

        // 按分类组织数据
        for (const emoji of data) {
            if (this.categories[emoji.category]) {
                this.categories[emoji.category].push(emoji);
            }
        }

        // 渲染初始面板
        this.renderPanel('smileys');
    }

    renderPanel(category) {
        const panel = document.getElementById(category);
        panel.innerHTML = '';

        this.categories[category].forEach(emoji => {
            const button = document.createElement('div');
            button.className = 'emoji-button';
            button.textContent = emoji.char;
            button.dataset.name = emoji.name;
            panel.appendChild(button);
        });
    }
}

3.3 响应式分类导航

/* 桌面端布局 */
.emoji-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* 移动端布局 */
@media (max-width: 768px) {
    .emoji-tabs {
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 10px;
    }

    .emoji-tab {
        flex-shrink: 0; /* 防止标签缩小 */
    }
}

四、分类系统高级功能

4.1 跨分类搜索

document.getElementById('emoji-search').addEventListener('input', (e) => {
    const term = e.target.value.toLowerCase().trim();

    // 清空所有面板
    document.querySelectorAll('.emoji-panel').forEach(panel => {
        panel.innerHTML = '';
    });

    // 创建搜索结果面板
    const resultsPanel = document.createElement('div');
    resultsPanel.className = 'emoji-panel active';
    resultsPanel.id = 'search-results';
    document.querySelector('.emoji-panels').appendChild(resultsPanel);

    // 在所有分类中搜索
    Object.values(emojiManager.categories).forEach(category => {
        category.forEach(emoji => {
            if (emoji.name.includes(term) || emoji.keywords.some(kw => kw.includes(term))) {
                const button = document.createElement('div');
                button.className = 'emoji-button';
                button.textContent = emoji.char;
                resultsPanel.appendChild(button);
            }
        });
    });
});

4.2 智能分类推荐

class EmojiRecommender {
    constructor() {
        this.contextKeywords = {
            greeting: ['hello', 'hi', 'hey'],
            celebration: ['congrats', 'birthday', 'anniversary'],
            sad: ['sorry', 'sad', 'condolences']
        };
    }

    recommendEmojis(text) {
        const recommendations = [];

        // 分析文本内容
        const lowerText = text.toLowerCase();

        // 匹配上下文关键词
        for (const [context, keywords] of Object.entries(this.contextKeywords)) {
            if (keywords.some(kw => lowerText.includes(kw))) {
                recommendations.push(...this.getContextEmojis(context));
            }
        }

        return [...new Set(recommendations)]; // 去重
    }

    getContextEmojis(context) {
        // 根据上下文返回推荐表情
        switch(context) {
            case 'greeting': 
                return ['👋', '😊', '👍', '👋🏻', '👋🏼'];
            case 'celebration':
                return ['🎉', '🥳', '🎂', '🎁', '✨'];
            case 'sad':
                return ['😢', '🙏', '❤️', '☹️', '🤗'];
            default:
                return [];
        }
    }
}

4.3 分类使用统计

class EmojiAnalytics {
    constructor() {
        this.usageData = {
            total: 0,
            byCategory: {
                smileys: 0,
                people: 0,
                animals: 0,
                food: 0,
                travel: 0,
                objects: 0,
                symbols: 0
            },
            byEmoji: {}
        };
    }

    trackUsage(emoji, category) {
        this.usageData.total++;
        this.usageData.byCategory[category]++;

        if (!this.usageData.byEmoji[emoji]) {
            this.usageData.byEmoji[emoji] = 0;
        }
        this.usageData.byEmoji[emoji]++;

        this.saveToLocalStorage();
    }

    getPopularInCategory(category, limit = 5) {
        return Object.entries(this.usageData.byEmoji)
            .filter(([emoji]) => {
                const cat = emojiManager.getCategoryForEmoji(emoji);
                return cat === category;
            })
            .sort((a, b) => b[1] - a[1])
            .slice(0, limit)
            .map(([emoji]) => emoji);
    }

    saveToLocalStorage() {
        localStorage.setItem('emojiUsage', JSON.stringify(this.usageData));
    }
}

五、分类系统最佳实践

  1. 分类命名规范化

    const STANDARD_CATEGORIES = [
        'smileys', 'people', 'animals', 
        'food', 'travel', 'objects', 'symbols'
    ];
    
    function validateCategory(category) {
        return STANDARD_CATEGORIES.includes(category);
    }
    
  2. 表情元数据管理

    const emojiMetadata = {
        "😀": {
            name: "grinning face",
            category: "smileys",
            keywords: ["face", "smile", "happy"],
            version: "1.0"
        },
        "🐶": {
            name: "dog face",
            category: "animals",
            keywords: ["animal", "pet", "puppy"],
            version: "1.0"
        },
        // ...其他表情元数据
    };
    
  3. 分类性能优化

    // 预加载分类数据
    function preloadCategories() {
        STANDARD_CATEGORIES.forEach(category => {
            const link = document.createElement('link');
            link.rel = 'preload';
            link.href = `/emoji-data/${category}.json`;
            link.as = 'fetch';
            document.head.appendChild(link);
        });
    }
    
  4. 分类无障碍支持

    <button class="emoji-tab" 
            role="tab"
            aria-selected="false"
            aria-controls="animals-panel"
            id="animals-tab">
        <i class="fas fa-paw" aria-hidden="true"></i>
        <span class="sr-only">动物表情</span>
    </button>
    
    <div class="emoji-panel"
         role="tabpanel"
         aria-labelledby="animals-tab"
         id="animals-panel"
         hidden>
         <!-- 动物表情 -->
    </div>
    

六、总结与扩展方向

本文详细介绍了表情选择器的分类系统设计与实现,关键点包括:

  1. 完善的分类体系

    • 7大逻辑分类覆盖所有表情类型
    • 每类包含80+精选表情符号
    • 清晰的分类标识和视觉设计
  2. 高级功能实现

    • 跨分类搜索
    • 智能上下文推荐
    • 使用统计与分析
    • 无障碍访问支持
  3. 性能优化策略

    • 按需加载分类数据
    • 预加载关键资源
    • 高效的事件处理
    • 本地缓存机制

扩展方向建议:

  1. 动态分类创建

    function createCustomCategory(name, emojis) {
        const categoryId = name.toLowerCase().replace(/\s+/g, '-');
        // 创建新分类标签和面板...
    }
    
  2. 分类主题定制

    .emoji-panel.sports {
        background-color: #e8f4f8;
        border: 1px solid #4fc3f7;
    }
    
  3. 分类协作功能

    function shareCategory(category) {
        const emojis = emojiManager.categories[category];
        const shareData = {
            title: `${category} 表情集合`,
            text: `分享${emojis.length}${category}表情`,
            url: `/share?category=${category}`
        };
        navigator.share(shareData);
    }
    
  4. 分类学习模式

    function startCategoryQuiz(category) {
        const emojis = [...emojiManager.categories[category]];
        // 实现表情猜谜游戏...
    }
    

通过本文的实现方案,开发者可以创建出分类科学、功能完备的表情选择器组件,满足现代Web应用对表情交互的高要求。

如果你觉得文章对你有帮助,那就请作者喝杯咖啡吧☕
微信
支付宝
😀
😃
😄
😁
😆
😅
🤣
😂
🙂
🙃
😉
😊
😇
🥰
😍
🤩
😘
😗
☺️
😚
😙
🥲
😋
😛
😜
🤪
😝
🤑
🤗
🤭
🫢
🫣
🤫
🤔
🤨
😐
😑
😶
😏
😒
🙄
😬
😮‍💨
🤤
😪
😴
😷
🤒
🤕
🤢
🤮
🤧
🥵
🥶
🥴
😵
😵‍💫
🤯
🥳
🥺
😠
😡
🤬
🤯
😈
👿
💀
☠️
💩
👻
👽
👾
🤖
😺
😸
😹
😻
😼
😽
🙀
😿
😾
👋
🤚
🖐️
✋️
🖖
🫱
🫲
🫳
🫴
🫷
🫸
👌
🤌
🤏
✌️
🤞
🫰
🤟
🤘
🤙
👈️
👉️
👆️
🖕
👇️
☝️
🫵
👍️
👎️
✊️
👊
🤛
🤜
👏
🙌
👐
🤲
🤝
🙏
✍️
💅
🤳
💪
🦾
🦿
🦵
🦶
👂
🦻
👃
👶
👧
🧒
👦
👩
🧑
👨
👩‍🦱
👨‍🦱
👩‍🦰
👨‍🦰
👱‍♀️
👱‍♂️
👩‍🦳
👨‍🦳
👩‍🦲
👨‍🦲
🧔‍♀️
🧔‍♂️
👵
🧓
👴
👲
👳‍♀️
👳‍♂️
🧕
👮‍♀️
👮‍♂️
👷‍♀️
👷‍♂️
💂‍♀️
💂‍♂️
🕵️‍♀️
🕵️‍♂️
👩‍⚕️
👨‍⚕️
👩‍🌾
👨‍🌾
👩‍🍳
👨‍🍳
🐶
🐱
🐭
🐹
🐰
🦊
🐻
🐼
🐨
🐯
🦁
🐮
🐷
🐸
🐵
🐔
🐧
🐦
🦅
🦉
🐴
🦄
🐝
🪲
🐞
🦋
🐢
🐍
🦖
🦕
🐬
🦭
🐳
🐋
🦈
🐙
🦑
🦀
🦞
🦐
🐚
🐌
🦋
🐛
🦟
🪰
🪱
🦗
🕷️
🕸️
🦂
🐢
🐍
🦎
🦖
🦕
🐊
🐢
🐉
🦕
🦖
🐘
🦏
🦛
🐪
🐫
🦒
🦘
🦬
🐃
🐂
🐄
🐎
🐖
🐏
🐑
🐐
🦌
🐕
🐩
🦮
🐕‍🦺
🐈
🐈‍⬛
🐓
🦃
🦚
🦜
🦢
🦩
🕊️
🐇
🦝
🦨
🦡
🦫
🦦
🦥
🐁
🐀
🐿️
🦔
🌵
🎄
🌲
🌳
🌴
🌱
🌿
☘️
🍀
🎍
🎋
🍃
🍂
🍁
🍄
🌾
💐
🌷
🌹
🥀
🌺
🌸
🌼
🌻
🌞
🌝
🌛
🌜
🌚
🌕
🌖
🌗
🌘
🌑
🌒
🌓
🌔
🌙
🌎
🌍
🌏
🪐
💫
🌟
🔥
💥
☄️
☀️
🌤️
🌥️
🌦️
🌧️
⛈️
🌩️
🌨️
❄️
☃️
🌬️
💨
💧
💦
🌊
🍇
🍈
🍉
🍊
🍋
🍌
🍍
🥭
🍎
🍏
🍐
🍑
🍒
🍓
🥝
🍅
🥥
🥑
🍆
🥔
🥕
🌽
🌶️
🥒
🥬
🥦
🧄
🧅
🍄
🥜
🍞
🥐
🥖
🥨
🥯
🥞
🧇
🧀
🍖
🍗
🥩
🥓
🍔
🍟
🍕
🌭
🥪
🌮
🌯
🥙
🧆
🥚
🍳
🥘
🍲
🥣
🥗
🍿
🧈
🧂
🥫
🍱
🍘
🍙
🍚
🍛
🍜
🍝
🍠
🍢
🍣
🍤
🍥
🥮
🍡
🥟
🥠
🥡
🦪
🍦
🍧
🍨
🍩
🍪
🎂
🍰
🧁
🥧
🍫
🍬
🍭
🍮
🍯
🍼
🥛
🍵
🍶
🍾
🍷
🍸
🍹
🍺
🍻
🥂
🥃
🥤
🧃
🧉
🧊
🗺️
🏔️
⛰️
🌋
🏕️
🏖️
🏜️
🏝️
🏞️
🏟️
🏛️
🏗️
🏘️
🏙️
🏚️
🏠
🏡
🏢
🏣
🏤
🏥
🏦
🏨
🏩
🏪
🏫
🏬
🏭
🏯
🏰
💒
🗼
🗽
🕌
🛕
🕍
⛩️
🕋
🌁
🌃
🏙️
🌄
🌅
🌆
🌇
🌉
🎠
🎡
🎢
💈
🎪
🚂
🚃
🚄
🚅
🚆
🚇
🚈
🚉
🚊
🚝
🚞
🚋
🚌
🚍
🚎
🚐
🚑
🚒
🚓
🚔
🚕
🚖
🚗
🚘
🚙
🚚
🚛
🚜
🏎️
🏍️
🛵
🦽
🦼
🛺
🚲
🛴
🛹
🚏
🛣️
🛤️
🛢️
🚨
🚥
🚦
🚧
🛶
🚤
🛳️
⛴️
🛥️
🚢
✈️
🛩️
🛫
🛬
🪂
💺
🚁
🚟
🚠
🚡
🛰️
🚀
🛸
🧳
📱
💻
⌨️
🖥️
🖨️
🖱️
🖲️
💽
💾
📀
📼
🔍
🔎
💡
🔦
🏮
📔
📕
📖
📗
📘
📙
📚
📓
📒
📃
📜
📄
📰
🗞️
📑
🔖
🏷️
💰
💴
💵
💶
💷
💸
💳
🧾
✉️
📧
📨
📩
📤
📥
📦
📫
📪
📬
📭
📮
🗳️
✏️
✒️
🖋️
🖊️
🖌️
🖍️
📝
📁
📂
🗂️
📅
📆
🗒️
🗓️
📇
📈
📉
📊
📋
📌
📍
📎
🖇️
📏
📐
✂️
🗃️
🗄️
🗑️
🔒
🔓
🔏
🔐
🔑
🗝️
🔨
🪓
⛏️
⚒️
🛠️
🗡️
⚔️
🔫
🏹
🛡️
🔧
🔩
⚙️
🗜️
⚗️
🧪
🧫
🧬
🔬
🔭
📡
💉
🩸
💊
🩹
🩺
🚪
🛏️
🛋️
🪑
🚽
🚿
🛁
🧴
🧷
🧹
🧺
🧻
🧼
🧽
🧯
🛒
🚬
⚰️
⚱️
🗿
🏧
🚮
🚰
🚹
🚺
🚻
🚼
🚾
🛂
🛃
🛄
🛅
⚠️
🚸
🚫
🚳
🚭
🚯
🚱
🚷
📵
🔞
☢️
☣️
❤️
🧡
💛
💚
💙
💜
🖤
💔
❣️
💕
💞
💓
💗
💖
💘
💝
💟
☮️
✝️
☪️
🕉️
☸️
✡️
🔯
🕎
☯️
☦️
🛐
🆔
⚛️
🉑
☢️
☣️
📴
📳
🈶
🈚
🈸
🈺
🈷️
✴️
🆚
💮
🉐
㊙️
㊗️
🈴
🈵
🈹
🈲
🅰️
🅱️
🆎
🆑
🅾️
🆘
🛑
💢
💯
💠
♨️
🚷
🚯
🚳
🚱
🔞
📵
🚭
‼️
⁉️
🔅
🔆
🔱
⚜️
〽️
⚠️
🚸
🔰
♻️
🈯
💹
❇️
✳️
🌐
💠
Ⓜ️
🌀
💤
🏧
🚾
🅿️
🈳
🈂️
🛂
🛃
🛄
🛅
  3 条评论
召田最帅boy 博主   湖南省衡阳市
3号特种兵   湖南省长沙市

💂‍♂️💂‍♂️上号了特种兵