首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Textarea中的光标位置显示DIV

在Textarea中的光标位置显示DIV是一种在文本编辑器中的特殊需求,通常用于实现自定义的输入提示或者自动补全功能。要实现这个功能,需要使用JavaScript和CSS来完成。

以下是一个简单的示例代码,可以在Textarea中的光标位置显示一个DIV:

代码语言:javascript
复制
const textarea = document.querySelector('textarea');
textarea.addEventListener('input', () => {
  const cursorPosition = textarea.selectionStart;
  const textBeforeCursor = textarea.value.substring(0, cursorPosition);
  const textAfterCursor = textarea.value.substring(cursorPosition);
  const div = document.createElement('div');
  div.style.position = 'absolute';
  div.style.top = '0';
  div.style.left = '0';
  div.style.backgroundColor = 'white';
  div.style.border = '1px solid black';
  div.style.padding = '5px';
  div.textContent = 'Hello, world!';
  textarea.parentNode.insertBefore(div, textarea.nextSibling);
  const rect = textarea.getBoundingClientRect();
  const cursorRect = textarea.getBoundingClientRect();
  div.style.top = `${cursorRect.top - rect.top}px`;
  div.style.left = `${cursorRect.left - rect.left}px`;
});

这段代码首先获取Textarea元素,并在其上添加一个input事件监听器。当用户在Textarea中输入时,会触发这个事件。在事件处理程序中,我们获取光标的位置,并使用substring方法将文本分成两部分:光标前的文本和光标后的文本。然后,我们创建一个DIV元素,并设置其样式和文本内容。最后,我们将这个DIV元素插入到Textarea元素的下一个兄弟节点中,并使用getBoundingClientRect方法计算光标的位置,以便将DIV元素放置在正确的位置。

需要注意的是,这只是一个简单的示例代码,实际应用中可能需要更复杂的逻辑来实现更复杂的功能。例如,可以使用第三方库来实现更高级的自动补全功能,或者使用Web Worker来实现更高效的文本处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 位置编码在注意机制中的作用

    在运行 RNN 或 LSTM 时,隐藏状态保留单词在句子中的相对位置信息。...然而,在 Transformer 网络中,如果编码器包含一个前馈网络,那么只传递词嵌入就等于为您的模型增加了不必要的混乱,因为在词嵌入中没有捕获有关句子的顺序信息。...为了处理单词相对位置的问题,位置编码的想法出现了。 在从嵌入层提取词嵌入后,位置编码被添加到这个嵌入向量中。 解释位置编码最简单的方法是为每个单词分配一个唯一的数字 ∈ ℕ 。...表示时域信号的最佳方式是通过正弦方程 sin(ωt)。如果我们巧妙地使用这个波动方程,我们可以在一次拍摄中捕获词嵌入的时间和维度信息。 让我们看一下这个等式,在接下来的步骤中,我们将尝试把它形象化。...这是我对注意力机制中使用的位置编码的看法。在接下来的系列中,我将尝试撰写有关编码器-解码器部分的内容,并将注意力应用于现实世界的规模问题。

    2K41

    Ace在线代码编辑器使用「建议收藏」

    editor.getSession().setValue("ops-coffee.cn") 当你想往编辑器插入数据时,可以通过insert在光标处插入数据 editor.insert('ops-coffee.cn...可以获取到编辑器内光标的位置,输出结果为一个标识行和列的字典,像这样:{row:13,column:37} editor.selection.getCursor() 3、搜索与替换 ace还实现了强大的搜索和替换功能...html中的textarea比较鸡肋,连最基本的换行都无法实现,所以我通常都会用ace来代替form表单中的textarea,但默认情况下submit无法自动获取pre标签的数据做提交,这该如何处理呢...class="col-md-2 control-label"> 内容 div class="col-md-9"> textarea class="form-control...> div> div> // 加载ace editor var editor = ace.edit("content"); var textarea =

    4.4K60

    JS实现获取鼠标在画布中的位置

    JS实现获取鼠标在画布中的位置 效果展示 概述 本文讲解如何实现我们平时用的画布软件中,怎么获取的我们鼠标时刻在画布中的位置。...// 首先得到鼠标在页面中的坐标( e.pageX, e.pageY) // 其次得到盒子在页面中的距离(box.offsetLeft, box.offsetTop) /.../ 用鼠标距离页面的坐标减去盒子在页面中的距离, 得到 鼠标在盒子内的坐标 // 我们生活中常见的画布里面的那个获取鼠标的位置 就是这么实现的 var box = document.querySelector...// 首先得到鼠标在页面中的坐标( e.pageX, e.pageY) // 其次得到盒子在页面中的距离(box.offsetLeft, box.offsetTop) /.../ 用鼠标距离页面的坐标减去盒子在页面中的距离, 得到 鼠标在盒子内的坐标 // 我们生活中常见的画布里面的那个获取鼠标的位置 就是这么实现的 var box = document.querySelector

    6300

    【实战】我是如何在输入框实现@ At功能的

    作者:InfinityTomorrow 授权转载 链接:https://juejin.cn/post/6982251438332182542 一、前言 最近接手了一个需求,在评论框中实现 @At通知用户的功能...) 当前需求的拆解 按住shift + @ 的时候,弹出通知列表 选择时 @的用户标签插入当前的光标位置中 生成@的用户标签的规则是:高亮、携带用户ID、一键删除信息、不可以编辑。...没有完美的方案(ps:只有不听话的产品经理) 的产品经理) textarea、input(例:新浪微博) 流程大概都是(监听keyup, 获取光标位置拆入@的节点...), 但是...相信我如果你手写,...获取光标的坐标在文本中的位置 caret-pos 从 textarea、contentedtiable 或 iframe 正文中获取插入符号/光标的位置/偏移量 import { position, offset...这个功能只是在开发中挤出来的、很多东西写的不够好、不够完善,希望本文能帮助您在开发中节约一点时间。也欢迎大家提出踊跃的反馈、希望能与大家共进步,加油~

    2.7K20

    可编辑DIV设置光标位置

    平时我们使用文本框input, textarea时,我们有时候需要得到光标的位置或者说设置光标的位置. 但是文本框有个不足,就是不能满足我们插入图片或者其他的一些要求....所以有时候我们使用div来代替文本框. 今天为了搞定设置DI的光标位置.头疼啊,终于可以了,记录一下,网上资料不多. 首先要让DIV启用编辑模式....下面说怎么获取或设置光标位置. 2个步骤 1:获取DIV中的光标位置 2:改变光标位置 var cursor = 0; // 光标位置 document.onselectionchange = function...(); //因为这里死从当前光标开始移动的(好像文本框的是从0算起.)所以我们需要拿到当前光标位置,然后就可以计算出要移动多少位了,这样就可以把光标移动到想要的位置了 r.moveStart...中的光标移动到最后面了..

    6.6K40

    HTML入门

    ,要进行换行就必须使用 或 标签 段落标签 p 标签中也有align属性,用来控制文字显示的位置,默认值是left 段落 HTML实体 在html文档中空格至多只能使用一次...标签通常用来将文本的一部分独立出来,从而对独立出来的内容设置单独的样式 div 标签一行只能放一个 span 一行可以放多个 字符与图片标签 字符格式化标签 图片标签 img 标签:用来在页面中引入图片...align: 设置表格在页面中的位置; 设置tr/td中文字对齐方式 bgcolor: 设置表格、tr、td的背景色 列表与表单标签 列表 列表分为有序列表、无序列表和自定义列表三种 有序列表 有序列表由...--密码框--> 常用属性 value 和 placeholder value:字体颜色深;当光标定位到框中,光标在值得最后。...value优先级高于placeholder placeholder:字体颜色浅;当光标定位到框中,光标在框的最前面,可以直接输入值 单选框和复选框 name属性用来将单选框/复选框限制成为一组复选框的name

    2.9K40

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

    使用 JQuery 监听用户在表情选择框中点击表情图片的事件。 在点击事件处理函数中,将对应的表情关键词插入到用户输入的文本中。 下面是一个简单的示例: <!...textInput = $("#textInput"); var currentText = $textInput.val(); // 在光标位置插入表情关键词...通过点击表情图片,将对应的表情关键词插入到文本输入框 #textInput 中。为了更好地控制光标的位置,我们使用了selectionStart和selectionEnd属性。...-- 更多表情... --> div> textarea id="commentInput" placeholder="发表你的评论...">textarea> 2....-- 更多表情... --> div> textarea id="articleInput" placeholder="在这里写下你的文章...">textarea> 3.

    21040

    在Jupyter Notebook中显示AI生成的图像

    使用合适的工具,您可以将想法转化为创意,通过将文本转换为生成的图像并使用数字媒体管理工具Cloudinary将其存储在云中。 OpenAI的高智能图像API使得显示AI生成的图像成为可能。...在本指南中,我将详细介绍如何构建一个基于用户输入的动态高效图像生成应用程序,并在Jupyter Notebook中显示图像输出。 什么是Jupyter Notebook?...如果他们没有输入提示,则当用户在空白输入上按下回车键时,提供的提示将显示图像。...以上代码中的导入语句将使用存储的Cloudinary AI生成的图像的URL以可视方式显示图像,而不是仅显示图像的URL。requests库发出HTTP请求。...有很多用例,本教程展示了一种使用文字生成自定义个性化图像的方法。此外,Cloudinary为其增添了最终润色,以便您可以重温创作非凡事物的记忆,并将图像安全地存储在云中的位置。

    8010

    网络名称空间在Linux虚拟化技术中的位置

    这一特性在Linux虚拟化技术中占据了核心位置,它不仅为构建轻量级虚拟化解决方案(如容器)提供了基础支持,也在传统的虚拟机技术中发挥作用,实现资源隔离和网络虚拟化。1....在Linux虚拟化技术中的应用2.1. 容器化技术在容器化技术(如Docker、Kubernetes)中,网络名称空间是实现容器网络隔离的基石。...它可以用来实现虚拟机的网络隔离,或者在更复杂的网络拓扑中(例如,使用Linux Bridge或Open vSwitch)作为虚拟网络设备的一部分。2.3....网络功能虚拟化(NFV)网络名称空间在网络功能虚拟化(NFV)中也有其位置。NFV旨在利用虚拟化技术来构建网络服务,如虚拟私有网络(VPN)、防火墙、负载均衡等。...此外,围绕网络名称空间,开发了众多工具和库(如CNI、Netlink库等),为自定义网络解决方案的开发提供了便利。4. 结论 网络名称空间在Linux虚拟化技术中占据着不可或缺的位置。

    12000

    getBoundingClientRect方法获取元素在页面中的相对位置

    获取元素位置可以用 offset 或 getBoundingClientRect,使用 offset 因为兼容性不好,比较麻烦,offset获取位置会形成“回溯”。...2.在IE8及以下的浏览器中,返回值对象包含的属性值有: top::元素上边缘距离文档顶部的距离; right: 元素右边缘距离文档左边的距离; bottom:元素下边缘距离文档顶部的距离; left:...元素左边缘距离文档左边的距离; 3.在IE9以上、谷歌、火狐等浏览器中,返回值对象包含的属性值有: top: 元素上边缘距离文档顶部的距离; right:元素右边缘距离文档左边的距离; bottom:元素下边缘距离文档顶部的距离...; left:元素左边缘距离文档左边的距离; width:元素的宽度(包含 padding 和 border) height:元素的高度(包含 padding 和 border) 4.在IE8及以下浏览器没有...width 和 height 属性的解决方法: 在IE8及以下浏览器中,可以通过计算得到元素的宽和高: 如: var dom = document.querySelector("#demo"), r

    3.9K20

    Power Pivot概念(1)—Power Pivot在Excel中的位置

    Power Pivot简称PP,可以理解为超级透视表,是Excel在数据透视表上的功能加持。和Power Query比,其主要是处于数据分析阶段。 ? PP中,基于函数来完成,其使用的是DAX语言。...大部分的操作都是在关联筛选后作出的计算和分析。 一、 PP在Excel中的位置 (一) 直接在开发工具加载项下加载,COM加载项里面。 ? (二) 在文件选项菜单里面加载 ?...(三) 在Excel菜单栏中的位置 ? (四) Power Pivot主界面的位置 ? PP中有3个主要点。 1. 添加列 作用:添加列主要是作为维度或者固定值进行分析。...例如切片器的使用,分类文本或者数字,严格绑定当前行的表达式。 位置:在数据表的最右侧。 2. 度量值 作用:度量值主要是作为值进行计算分析。 位置:在横向分隔符的下面区域。 3....表间关系 作用:在Excel中的Power Pivot主要有1对多,多对1关系。这种关系对于数据的计算有着非常重要的影响。 位置:在关系透视图菜单选项里可以查看。

    3.2K10
    领券