textarea 跟随光标位置 出现 提示框(类似输入法 的 功能)

本文介绍如何在textarea中实现在光标位置显示提示框,类似输入法功能。通过获取光标位置,利用e.target.selectionStart和创建隐藏div及span来定位提示框。在textarea输入时,动态调整提示框的left和top属性,使其跟随光标。
摘要由CSDN通过智能技术生成

实现思路

利用 e.target.selectionStart 可以知道光标的 位置, 但是面对enter换行 与 空格的时候, 就不起作用了。
而且 e.target.selectionStart 只能知道在文本字符串的位置,我们需要的是距离边框的位置, 这样才能给提示框的 left 和 top 赋值。

所以 思路是 用一个 一模一样的 div 在 textarea 的同样的位置, 进行visibility hidden。
光标的位置插入一个span 标签, 获取span 的offsetTop 和 offsetLeft 就可以;

实现代码

html部分:

<div class="textarea-div">
         <!--隐藏在背后的div用来获取位置-->
          <div style="position: absolute; visibility:hidden;width: 100%; height: 100%" v-html="hiddenText"></div>
          <!--真正的输入输入框-->
          <textarea ref="textArea" class="textarea" v-model="text"
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值