Javascript 如何检测rect shape div下的textarea标记中是否有文本?

Javascript 如何检测rect shape div下的textarea标记中是否有文本?,javascript,jquery,Javascript,Jquery,这是你在照片中看到的我的情况。我正在编写一个降价编辑器。当鼠标悬停在文本区域上时,浮动命令按钮面板可见。命令按钮面板绝对位于文本区域的右上角 但有时,textarea中的文本会被命令面板阻止,从而无法选择其下方的文本 我想检测一种情况,当命令面板下有一个文本时,然后应用一个类将命令面板向上移动50px 下面是我的问题:如何检测rect shape div下的textarea标记中是否有文本 谢谢 如下图所示,悬停在textarea上的命令面板会阻止文本。我想了解一下这种情况 好的,我过去也曾为调

这是你在照片中看到的我的情况。我正在编写一个降价编辑器。当鼠标悬停在文本区域上时,浮动命令按钮面板可见。命令按钮面板绝对位于文本区域的右上角

但有时,textarea中的文本会被命令面板阻止,从而无法选择其下方的文本

我想检测一种情况,当命令面板下有一个文本时,然后应用一个类将命令面板向上移动50px

下面是我的问题:如何检测rect shape div下的textarea标记中是否有文本

谢谢

如下图所示,悬停在textarea上的命令面板会阻止文本。我想了解一下这种情况


好的,我过去也曾为调整文本区域的大小做过类似的事情。秘密在于有一个宽度可变的屏幕外输入或文本区域。在可见文本字段中更新文本时,将文本复制到屏幕外元素。阴影元素必须具有影响可见元素的所有相同样式(填充、边框、宽度、高度、字体大小等),以确保获得准确的结果。然后在每次文本更改时测量阴影元素的宽度。

因此,您可以做的一件事是获得文本区域的宽度。又名
textarea
cols
属性

一旦确定了文本区域的宽度,就可以在文本区域内获得文本(
textarea
value),并找到该文本的长度。如果
textarea
中的文本长度大于
cols
的数量,则您知道文本将跨越
textarea
的长度

一个非常明显的警告是,假设您正在写一首诗或其他东西,而文本从未跨越整行的长度,该长度将超过
cols
的数量,而实际上从未跨越
textarea

另一个固有的问题是,如果开始在
文本区域中滚动,新文本可能会出现在控件下面

我真的认为不可能检测到
textarea
中的文本是否位于某个
div
下面

我可能会建议做的是让控件
div
50px
始终高于
textarea
。简单的解决方案,看起来仍然不错,不需要任何疯狂的编码,因为我真的无法想象一个简单的方法(或者任何方法)来做到这一点


希望这有帮助。

我不太清楚你的意思,除了第一行之外,命令面板不总是覆盖文本吗?第一行是文本区域中的文本,因为我不希望命令面板在不需要时占据水平区域。当可见时,命令面板位于文本区域内,只有当鼠标移到文本区域上时,面板才可见。对不起,我仍然不明白你的意思(也许其他人会理解)。也许你可以上传更多你想在不同场景下发生的事情的图片?当然,谢谢你让我知道。如果你让textarea不可编辑,那么只需键入一堆文本,直到它到达下一行并检查长度。然后在命令面板上创建鼠标悬停功能,检查长度是否大于直线,隐藏或移动长度