javascript - 在 contenteditable 中将插入符号放在图像之前/之后

标签 javascript jquery html css contenteditable

我有一个用于聊天的 contenteditable div。我添加了一个向文本添加表情符号的功能。 当我点击 contenteditable 中的表情符号时,我希望将插入符号放在图像之前或之后。

.chat-text-box img {
  width: 100%;
  height: 100%;
}

.chat-text-box emoji {
  width: 18px;
  height: 18px;
  display: inline-block;
}
<div class="chat-text-box" contenteditable="true">This is a emoji:&nbsp;
  <emoji class="emoji-icon" contenteditable="false" data-emoji="&amp;#x1F605;"><img draggable="false" src="https://twemoji.maxcdn.com/2/svg/1f605.svg"></emoji>
</div>

最佳答案

当文本框有 :focus

时,您可以使用伪元素 ::after 创建插入符号

关于伪元素的更多信息 MDN

.chat-text-box img {
  width: 100%;
  height: 100%;
}

.chat-text-box emoji {
  width: 18px;
  height: 18px;
  display: inline-block;
  /* added this so you can use position: absolute on the ::after */
  position: relative;
}

.chat-text-box:focus emoji::after {
  content: '>';
  display: block;
  width: 1rem;
  height: 1rem;
  position: absolute;
  bottom: 0;
  right: -1.5rem;
}
<div class="chat-text-box" contenteditable="true">This is a emoji:&nbsp;
  <emoji class="emoji-icon" contenteditable="false" data-emoji="&amp;#x1F605;"><img draggable="false" src="https://twemoji.maxcdn.com/2/svg/1f605.svg"></emoji>
</div>

关于javascript - 在 contenteditable 中将插入符号放在图像之前/之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48070486/

相关文章:

javascript - HTML Accordion 50/50 分屏

javascript - 如何在 Telerik 编辑器上使用 knockoutjs 绑定(bind)?

javascript - 如何将新生成的 div 放在另一个 div 旁边?

php - 当下一个值与前一个值不同时更改单元格的背景颜色

javascript - 在 react 渲染返回中使用 if/else

java - AccessController.doPrivileged 是否为 JavaScript 线程提供已签名 Applet 的权限?

javascript - 如何使用 jquery 禁用或隐藏轮播下一个/上一个图标

jquery - 更新分区 :after property using jQuery

javascript - Javascript 可以访问 native 图像大小吗?

php - 如何使用 PHP 和 MySQL 填充此 HTML 表