当前位置: 首页 > 知识库问答 >
问题:

javascript - 对于可编辑的div,怎么实现高亮当前行的效果?

公孙辰龙
2024-02-20

在用div模拟的编辑器中,如何获取输入光标所在的div元素,然后实现高亮输入光标所在行的效果html结构如下:

<div id="editArea" contenteditable="true">    <div>1234</div>    <div>一二三四</div>    <div>壹贰叁肆</div></div>

对于可编辑的div,我尝试用获得焦点和失去焦点的事件来实现高亮当前行的效果,但是在用↑、↓、回车和退格键改变输入光标所在行后,并没有触发焦点事件,只有点击时才触发。

共有3个答案

督坚白
2024-02-20

光标可以通过 selection 来做到,在外层监听相关事件,然后获取 selection,再修改样式。

伏子辰
2024-02-20
  1. 使用document.getSelection()方法可以获取当前的选区
  2. 获取到当前选区之后可以对当前选取的对应元素对应的样式

下面给你一段参考的代码,里面具体的触发绑定事件需要自行决定

    <div id="editArea" contenteditable="true">      <div id="div1">1234</div>      <div id="div2">一二三四</div>      <div id="div3">壹贰叁肆</div>    </div>        <script>    let highlightedElement = null;        function highlightCurrentElement() {      // 如果之前有高亮的元素,移除高亮      if (highlightedElement) {        highlightedElement.classList.remove('highlighted');      }          const selection = document.getSelection();      if (selection && selection.anchorNode && selection.anchorNode.parentNode) {        highlightedElement = selection.anchorNode.parentNode;        highlightedElement.classList.add('highlighted');      }    }        document.getElementById('editArea').addEventListener('click', highlightCurrentElement);    </script>
袁安志
2024-02-20

你可以监听keyup事件

 类似资料:
  • vue2 如何实现上面的这种表格样式,点击对于单元格的时候可以进行编辑,可以添加一行或者删除其中的一行,或者是移动当前的某一行,导出,保存等操作 有没有第三方的库,或者是提供一个思路也可以,麻烦各位大佬了

  • 本文向大家介绍javascript实现节点(div)名称编辑,包括了javascript实现节点(div)名称编辑的使用技巧和注意事项,需要的朋友参考一下 节点html代码如下: js编辑noteTxt文本,function如下: css如下: 代码非常的简单,这里就不多做解释了,下伙伴们可以自由发挥下,使用到自己的项目中去。

  • 或者不使用swiper的其他方式怎么实现?

  • 有一个需求,需要用户上传word,完了在线编辑后生成pdf,目前是打算时候canvas-editor来进行在线编辑,用Mammoth.js来实现解析word,生成html信息传给canvas-editor。 目前有一个问题,如果word设置了页眉页脚的话,Mammoth.js是拿不到相关信息的,请问这该如何解决呢?或者有没有其他更好的库?

  • 本文向大家介绍JS实现选中当前菜单后高亮显示的导航条效果,包括了JS实现选中当前菜单后高亮显示的导航条效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现选中当前菜单后高亮显示的导航条效果。分享给大家供大家参考。具体如下: 这里演示选中当前菜单后,该菜单高亮显示,也就是说在不改变菜单CSS代码的情况下,用JavaScript去控制菜单的背景,如果该菜单项被点击后,将赋予它一个与众不

  • 本文向大家介绍Kafka 的高可靠性是怎么实现的?相关面试题,主要包含被问及Kafka 的高可靠性是怎么实现的?时的应答技巧和注意事项,需要的朋友参考一下 数据可靠性 Kafka 作为一个商业级消息中间件,消息可靠性的重要性可想而知。本文从 Producter 往 Broker 发送消息、Topic 分区副本以及 Leader 选举几个角度介绍数据的可靠性。 Topic 分区副本 在 Kafka