【Java 进阶篇】JQuery 案例:qq表情选择,表达情感的小黄脸

news2024/11/27 18:38:16

在这里插入图片描述

在我们的数字交流时代,表情符号已成为表达情感的重要方式之一。为了丰富用户的输入体验,qq表情选择功能应运而生。通过巧妙运用 JQuery,我们可以在页面中实现一个生动活泼的表情选择框,让用户轻松表达各种情感。本篇博客将深入探讨 JQuery 中实现qq表情选择的方法和实际应用,为你揭开这个小黄脸的神秘面纱。

前言

表情符号是一种丰富多彩、生动有趣的文字表达方式,而qq表情则因其独特的设计和丰富的表情包而备受欢迎。通过在页面中引入qq表情选择框,我们可以让用户在文字输入的同时,通过表情符号更生动地表达自己的情感。下面,让我们一起探索如何用 JQuery 创建一个qq表情选择框吧!

JQuery qq表情选择实现原理

实现qq表情选择的关键在于将表情符号插入到用户输入的文本中。下面是一个基本的实现步骤:

  1. 准备好一组qq表情的图片,并给每个表情图片设置一个对应的关键词,用于标识该表情。

  2. 在页面中创建一个表情选择框,将qq表情的图片以列表形式展示出来。

  3. 使用 JQuery 监听用户在表情选择框中点击表情图片的事件。

  4. 在点击事件处理函数中,将对应的表情关键词插入到用户输入的文本中。

下面是一个简单的示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JQuery qq表情选择示例</title>
    <style>
        /* 表情选择框样式 */
        #emojiContainer {
            display: flex;
            flex-wrap: wrap;
        }

        #emojiContainer img {
            width: 30px;
            height: 30px;
            margin: 5px;
            cursor: pointer;
        }

        /* 输入框样式 */
        #textInput {
            width: 300px;
            height: 100px;
            margin-top: 10px;
        }
    </style>
    <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
    <script>
        $(document).ready(function() {
            // 表情关键词映射
            var emojiMap = {
                "smile": "[笑脸]",
                "cry": "[哭泣]",
                "heart": "[心]",
                // 更多表情...
            };

            // 表情选择框点击事件
            $("#emojiContainer img").click(function() {
                // 获取点击的表情关键词
                var emojiKey = $(this).data("key");

                // 在输入框中插入表情关键词
                insertEmoji(emojiKey);
            });

            // 输入框中插入表情
            function insertEmoji(key) {
                var $textInput = $("#textInput");
                var currentText = $textInput.val();

                // 在光标位置插入表情关键词
                var cursorPos = $textInput.prop("selectionStart");
                var newText = currentText.substring(0, cursorPos) + emojiMap[key] + currentText.substring(cursorPos);
                $textInput.val(newText);

                // 更新光标位置
                $textInput.prop("selectionStart", cursorPos + emojiMap[key].length);
                $textInput.prop("selectionEnd", cursorPos + emojiMap[key].length);
            }
        });
    </script>
</head>
<body>
    <div id="emojiContainer">
        <img src="smile.png" alt="笑脸" data-key="smile">
        <img src="cry.png" alt="哭泣" data-key="cry">
        <img src="heart.png" alt="" data-key="heart">
        <!-- 更多表情... -->
    </div>
    <textarea id="textInput" placeholder="在这里输入..."></textarea>
</body>
</html>

在这个示例中,我们创建了一个表情选择框 #emojiContainer,其中包含了一些qq表情的图片。通过点击表情图片,将对应的表情关键词插入到文本输入框 #textInput 中。为了更好地控制光标的位置,我们使用了selectionStartselectionEnd属性。

实际应用场景

qq表情选择框不仅仅可以用在聊天应用中,还可以应用在各种需要用户输入的场景。以下是一些实际应用场景的例子:

1. 社交评论

在社交平台的评论区,用户可以通过qq表情选择框更生动地表达对他人的评论。

<!-- 示例:社交评论 -->
<div id="emojiContainer">
    <img src="smile.png" alt="笑脸" data-key="smile">
    <img src="cry.png" alt="哭泣" data-key="cry">
    <img src="heart.png" alt="" data-key="heart">
    <!-- 更多表情... -->
</div>
<textarea id="commentInput" placeholder="发表你的评论..."></textarea>

2. 博客文章编辑

在博客文章编辑页面,作者可以通过qq表情选择框为文章增添更多情感色彩。

<!-- 示例:博客文章编辑 -->
<div id="emojiContainer">
    <img src="smile.png" alt="笑脸" data-key="smile">
    <img src="cry.png" alt="哭泣" data-key="cry">
    <img src="heart.png" alt="" data-key="heart">
    <!-- 更多表情... -->
</div>
<textarea id="articleInput" placeholder="在这里写下你的文章..."></textarea>

3. 在线表白

在在线表白或者情书撰写中,qq表情选择框能够为文字增添更多的温馨和浪漫。

<!-- 示例:在线表白 -->
<div id="emojiContainer">
    <img src="smile.png" alt="笑脸" data-key="smile">
    <img src="cry.png" alt="哭泣" data-key="cry">
    <img src="heart.png" alt="" data-key="heart">
    <!-- 更多表情... -->
</div>
<textarea id="loveLetter" placeholder="亲爱的,我想对你说..."></textarea>

通过这些实际应用场景的示例,我们可以看到qq表情选择框在用户交互中的灵活运用,不仅丰富了页面的表现形式,也增强了用户对于交流的参与感和愉悦感。

小贴士

在使用qq表情选择框时,有一些小贴士可能对你有帮助:

1. 图片资源的优化

确保你使用的qq表情图片是经过优化的,以保证页面加载的性能。可以选择合适的图片格式(如WebP)和压缩工具,以提高页面加载速度。

2. 表情包的多样性

为了满足不同用户的需求,可以提供多样性的表情包选择,覆盖更广泛的情感表达。

3. 兼容性考虑

在实际开发中,要考虑不同浏览器和设备的兼容性。确保qq表情选择框在各种环境下都能正常工作。

总结

通过本篇博客,我们深入学习了如何使用 JQuery 实现qq表情选择框,为用户提供更生动、丰富的输入体验。通过简单的代码示例,我们了解了qq表情选择框的基本实现原理和实际应用场景。同时,通过小贴士的分享,希望能够帮助你更好地运用这一功能,提升页面的交互性和用户体验。在前端的世界中,让我们共同为用户创造更为有趣、愉悦的交互体验吧!

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1216481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用量子玻尔兹曼机推进机器学习:新范式

一、说明 量子玻尔兹曼机&#xff08;QBM&#xff09;是量子物理学和机器学习的前沿融合。通过利用叠加和纠缠等量子特性的力量&#xff0c;QBM 可以同时探索多个解决方案&#xff0c;使其异常擅长解决复杂问题。它使用量子位&#xff08;量子计算的构建模块&#xff09;以传统…

所有社区工作者!能救一个是一个

救命啊&#xff0c;这东西我怎么早不知道呢&#xff01; 社区人到年底了各种要写的东西很烦啊&#xff01;突然看到这个&#xff0c;真的救我大命了啊&#xff01; 谁懂啊&#xff1f;&#xff01;&#xff01;平时写个东西起码两三天&#xff0c;试了一下这东西&#xff01;…

阅读记录 The Aggregation–Heterogeneity Trade-off in Federated Learning

The Aggregation–Heterogeneity Trade-off in Federated Learning Abstract 机器学习的传统观点认为&#xff0c;训练模型的数据越多&#xff0c;模型的性能就越好。因此&#xff0c;人们开发了多种联邦学习方法来聚合尽可能多的本地样本。与这种观点相反&#xff0c;本文表…

营收连续上涨,一脉阳光能否打造“医学影像独角兽”?

自2018年完成B轮融资的一脉阳光&#xff0c;时隔四年&#xff0c;于今年11月13日向港交所发起冲刺。作为国内唯一一家为整个医学影像产业链提供多元化服务的医学影像平台运营商及管理者&#xff0c;一脉阳光受到多家投资机构的青睐&#xff0c;高盛、新浚资本多次追加投资。 此…

网络和Linux网络_2(套接字编程)socket+UDP网络通信代码

目录 1. 预备知识 1.1 源IP地址和目的IP地址 1.2 端口号port和套接字socket 1.3 网络通信的本质 1.4 TCP和UDP协议 1.5 网络字节序 2. socket套接字 2.1 socket创建套接字 2.2 bind绑定 2.3 sockaddr结构体 3. UDP网络编程 3.1 server的初始化服务器 3.2 server的…

使用阿里云Logstash,从自建es6.2.4迁移数据至云ES7.10测试

一、购买阿里云Logstash服务 4C16G 40G 高效云盘 二、配置管道 2.1 配置启动管道前置工作 logstash要通源端ES网络及http端口,且加白logstash要通目标端ES网络及http端口,且加白目标端ES加配置自动创建索引配置管道前先安装 logstash-output-file_extend插件目标云ES7.10要…

Java 等后端应用如何获取客户端真实IP —— 筑梦之路

需求说明 现有一套Java开发的应用&#xff0c;需要能获取到用户访问的真实IP地址&#xff0c;以此来过滤到一些不安全的因素。而实际部署的场景中Java服务提供给用户访问需要经过多次代理&#xff0c;默认情况下是无法获取到客户端真实IP地址的&#xff0c;因此要实现该需求&a…

如何实现SSL证书自动部署、自动续费、自动更新?看这里~

SSL证书默认有效期默认为1年&#xff0c;部分免费证书的默认有效期为3个月。您必须在证书到期前的30个自然日内续费并更新证书&#xff0c;才能延长证书的服务时长。证书续费时&#xff0c; 会颁发一个新的证书&#xff0c;您收到新证书后需要手工更新到服务器上。部分证书支持…

乡村电商人才齐聚浙江建德,这场农播氛围值已拉满!

“3、2、1&#xff0c;上链接!” “现场营造了很好的交流氛围&#xff0c;碰撞出了不少合作机会。” “农播让我们有机会为家乡农产品代言&#xff0c;并且通过电商平台&#xff0c;把优质农特产品卖到全国各地。” “就像是一个演员需要一个舞台&#xff0c;一个好产品也需…

[Linux] yum仓库相关

一、yum仓库 1.1 yum简介 yum 是一种基于 RPM 软件包&#xff08;Red-Hat Package Manager 的缩写&#xff09;的软件更新机制&#xff0c;可自动解决软件包之间的依赖关系。这就解决了日常工作中花费大量时间寻找安装包的问题。 为什么会出现依赖 linux 本身就有简化系统的优…

华为鸿蒙开发记录

错误 1No module found. Make sure the project sync is completed successfully and the module is set in Edit Configuration > General 应该是项目建立的是Api是9 &#xff0c;但是 华为远程模拟器是应该建立的是 8的&#xff0c;导致 版本过低。从新建立项目选择APi8就…

前端学习笔记--React

1. 什么是React? React 是一个用于构建用户界面的JavaScript库核心专注于视图,目的实现组件化开发我们可以很直观的将一个复杂的页面分割成若干个独立组件,每个组件包含自己的逻辑和样式 再将这些独立组件组合完成一个复杂的页面。 这样既减少了逻辑复杂度&#xff0c;又实现…

基于vue 2.0的H5页面中使用H5自带的定位,高德地图定位,搜索周边商户,覆盖物标记,定位到当前城市

基于vue的H5页面中使用高德地图定位&#xff0c;搜索周边商户&#xff0c;覆盖物标记 首先安装高德地图插件 npm i amap/amap-jsapi-loader --save地图承载容器 <template><div id"container"></div> </template>地图容器样式 <style…

《QT从基础到进阶·三十四》qobject_cast动态强制转换

qobject_cast()对QObject类执行动态强制转换。 qobject_cast()函数的行为类似于标准c dynamic_cast()&#xff0c;但执行速度比dynamic_cast 更快&#xff0c;且不需要C的RTTI 的支持&#xff0c;但qobject_cast 仅适用于QObject 及其派生类。 如果对象的类型正确(在运行时确定…

Git客户端(TortoiseGit)使用

参考文章&#xff1a; https://www.cnblogs.com/xuwenjin/p/8573603.html 【精选】使用TortoiseGit工具进行开发&#xff08;连接远程仓库进行克隆、拉取、获取、提交、推送、新建/切换/合并分支、解决冲突&#xff09;_tortoisegit连接远程仓库-CSDN博客 tortoise git 拉取…

网络运维Day18

文章目录 环境准备导入数据确认表导入成功练习用表解析表格结构设计 查询语句进阶什么是MySQL函数常用功能函数数学计算流程控制函数查询结果处理 连接查询(联表查询)表关系什么是连接查询连接查询分类笛卡尔积内连接(INNER)外连接 子查询什么是子查询子查询出现的位置子查询练…

Element UI 偶发性图标乱码问题

1. 问题如图所示 2. 原因&#xff1a;sass版本低 sass: 1.26.8 sass-loader: 8.0.2 3. 解决方法 (1) 提高sass版本 (2) 在vue.config.js中添加配置 css: {loaderOptions: {sass: {sassOptions: {outputStyle: expanded}}}},4. 遇到的问题 升级后打包&#xff0c;报错 Syntax…

自动化网络图软件

由于 IT 系统的发展、最近向混合劳动力的转变、不断变化的客户需求以及其他原因&#xff0c;网络监控变得更加复杂。IT 管理员需要毫不费力地可视化整个网络基础设施&#xff0c;通过获得对网络的可见性&#xff0c;可以轻松发现模式、主动排除故障、确保关键设备可用性等。 为…

半平面求交 - 洛谷 - P3256 [JLOI2013] 赛车

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 往期相关背景点击前往 题目大意 题目链接 https://www.luogu.com.cn/problem/P3194 有一场赛车比赛&#xff0c;每辆车有自己的起位置和速度&#xff0c;比赛时间无…