可编辑div,文本编辑器

1.可输入div , contenteditable属性

div.inp(id=“textbox”, contenteditable, :placeholder=“placeholder”)

2.提示文字

.inp:empty:before {
content: attr(placeholder);
display: block;
color: #a9a9a9;
}

3.表情资源及css

4.插入表情
node节点的操作,光标对象,内部属性
range对象:文档的连续范围区域,如鼠标拖动选中的区域,range里的属性可以操作光标,做索引,未知的定位,输出等
selection对象:拖蓝

废话不多说,上代码

<template lang="pug">
  div
    div 文字编辑器
    div.tarea-box
      div.text-box
        div.inp-box
          div.inp(id="textbox", contenteditable, ref="textbox", :placeholder="placeholder",     @blur="saveFocus", @keyup="hang")
        div.bottom-face
          img.faceImage(:src="faceImage", @click="handleChoose")
          span.count  还可以输入{
   {
   textCount}}字
        div.expression(v-if="showFace")
          div.exp_bd
            div.exp_cont(:class="showFace? 'active':''")
              div.qq_face()
                a.face(@click="chooseQqFace('face', value, key, index)", v-for='(value, key, index) in QQFaceMap.data', v-show="index < 105", type="qq", :title="key",  :class="'qqFace'+ `${index}`") {
   {
   key}}
              div.emoji_face()
                a.face(@click="chooseQqFace('emoji', value, key, index)", v-for='(value, key, index) in EmojiFaceMap.data',  :title="key", type="emoji",  :class="'emoji'+ `${value}`") {
   {
   value}}
    div
      el-button(type="primary", @cli
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 实现这个功能可以通过以下步骤: 1. 创建一个div元素,并在其中填充文本内容。 2. 添加一个双击事件监听器,在双击时触发编辑模式。 3. 在编辑模式中,将div元素替换为一个可编辑的文本框。 4. 当用户完成编辑并按下回车键或离开文本框时,将文本框的内容替换回div元素。 以下是一个简单的实现示例: HTML代码: ```html <div id="editable" ondblclick="startEdit()"></div> ``` JavaScript代码: ```javascript function startEdit() { // 获取div元素 var div = document.getElementById("editable"); // 获取div元素的内容 var text = div.innerText; // 创建一个文本框元素 var input = document.createElement("input"); // 设置文本框的初始值为div元素的内容 input.value = text; // 将文本框元素替换为div元素 div.parentNode.replaceChild(input, div); // 当文本框失去焦点或按下回车键时,结束编辑模式 input.onblur = endEdit; input.onkeydown = function(e) { if (e.keyCode == 13) { endEdit(); } }; // 将文本框设置为焦点状态,以便用户可以开始编辑 input.focus(); } function endEdit() { // 获取文本框元素 var input = document.querySelector("input"); // 获取文本框的内容 var text = input.value; // 创建一个div元素 var div = document.createElement("div"); // 设置div元素的内容为文本框的内容 div.innerText = text; // 将文本框元素替换为div元素 input.parentNode.replaceChild(div, input); } ``` 在这个示例中,我们首先创建了一个双击可编辑div元素。当用户双击该元素时,会触发startEdit()函数,该函数会将div元素替换为一个可编辑的文本框。当用户完成编辑并按下回车键或离开文本框时,会触发endEdit()函数,该函数会将文本框替换回div元素。 ### 回答2: JS双击div编辑文本内容的实现可以通过以下步骤来完成。 首先,我们需要给目标div绑定一个双击事件监听器。可以使用addEventListener方法来实现这一点,通过传递'click'事件类型作为第一个参数以及一个回调函数作为第二个参数来实现。 回调函数应该包含以下代码: ``` div.addEventListener('dblclick', function() { // 在此处编写编辑文本内容的代码 }); ``` 在回调函数中,我们可以创建一个新的input元素,并将其添加到div中,以便用户可以输入新的文本内容。我们可以使用createElement方法创建新的input元素,并使用appendChild方法将其添加到div中。 接下来,我们可以使用focus方法将焦点设置在新创建的input元素上,以便用户可以直接开始输入。 然后,我们需要监听input元素上的回车键事件,以便在用户完成输入后保存文本内容。我们可以使用addEventListener方法,传递'keydown'事件类型作为第一个参数以及一个回调函数作为第二个参数来实现。 回调函数应该检查按下的键是否是回车键(keyCode为13),如果是则保存输入的文本内容。可以使用value属性获取input元素的值,并将其保存在一个变量中,然后使用innerHTML属性将文本内容设置回原来的div中。 最后,我们可以使用removeChild方法将input元素从div中移除,以便将界面恢复到初始状态。 总结起来,实现JS双击div编辑文本内容的步骤如下: 1. 给div绑定一个双击事件监听器; 2. 在双击事件的回调函数中创建一个新的input元素,并将其添加到div中; 3. 在input元素上监听回车键事件,将文本内容保存并设置回div中; 4. 将input元素从div中移除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值