当前位置:首页 > JavaScript

js实现评论发送表情

2026-04-04 20:09:20JavaScript

实现评论发送表情的步骤

准备工作 确保HTML中有一个评论输入框和一个表情选择面板。表情可以用Unicode字符或图片表示。

HTML结构示例

<div class="comment-box">
  <textarea id="comment-input" placeholder="输入评论..."></textarea>
  <div class="emoji-panel">
    <span class="emoji" data-emoji="😀">😀</span>
    <span class="emoji" data-emoji="😂">😂</span>
    <!-- 更多表情 -->
  </div>
  <button id="submit-comment">发送</button>
</div>

JavaScript实现 监听表情点击事件,将选中表情插入到输入框光标位置。

js实现评论发送表情

document.querySelectorAll('.emoji').forEach(emoji => {
  emoji.addEventListener('click', function() {
    const input = document.getElementById('comment-input');
    const cursorPos = input.selectionStart;
    const emojiChar = this.getAttribute('data-emoji');

    input.value = input.value.substring(0, cursorPos) + 
                 emojiChar + 
                 input.value.substring(cursorPos);

    input.focus();
    input.setSelectionRange(cursorPos + emojiChar.length, cursorPos + emojiChar.length);
  });
});

存储和显示评论 当用户提交评论时,将内容保存并显示在页面上。

document.getElementById('submit-comment').addEventListener('click', function() {
  const comment = document.getElementById('comment-input').value;
  if (comment.trim()) {
    const commentList = document.createElement('div');
    commentList.className = 'comment';
    commentList.textContent = comment;
    document.body.appendChild(commentList);
    document.getElementById('comment-input').value = '';
  }
});

增强功能建议

使用表情图片 如果不想用Unicode字符,可以使用图片作为表情。

js实现评论发送表情

<span class="emoji" data-emoji=":smile:">
  <img src="smile.png" alt="smile">
</span>

表情面板切换 添加按钮控制表情面板的显示/隐藏。

document.getElementById('toggle-emoji').addEventListener('click', function() {
  const panel = document.querySelector('.emoji-panel');
  panel.style.display = panel.style.display === 'none' ? 'block' : 'none';
});

移动端优化 对于移动设备,可以考虑使用系统自带的表情键盘。

document.getElementById('comment-input').addEventListener('focus', function() {
  this.setAttribute('inputmode', 'emoji');
});

标签: 表情js
分享给朋友:

相关文章

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…