代码之家  ›  专栏  ›  技术社区  ›  David Glenn

如何在javascript中将元素放置在文本框carret下面?

  •  2
  • David Glenn  · 技术社区  · 15 年前

    我发现了许多jQuery自动完成插件,但是没有一个将列表放在当前插入符号位置之下。

    我可以使用 $('#textfield').position() 我可以用 something like this 但它从文本值而不是像素位置获取字符索引。

    3 回复  |  直到 8 年前
        1
  •  2
  •   Community CDub    8 年前

    在这个耳朵上转播: Calculate text width with JavaScript

    你能做的就是在屏幕上有一个divvisible:hidden 然后,每次在文本框中输入一个新字符时,都要更改div的内部html

    因此textbox值和div innerhtml将始终同步。

    然后,当你想弹出你的自动完成你将添加的div宽度。到

    就这样。。。

    你需要div和textbox有相同的字体。。。

        2
  •  1
  •   Richard Poole MatzFan    15 年前

    http://plugins.jquery.com/project/caretPosition

    <span> <textarea>

    您可以尝试将其扩展到:

    1. 从目标复制字体、行高、空格和换行符样式 <文本区域>

    2. 隐藏临时文件 <跨度> 没有 <div style="height: 0; overflow: hidden;"> 或者绝对定位-9999px,-9999px

        3
  •  -2
  •   Manish Samuel    13 年前
    $(this).position().top ;
    $(this).position().left ;
    $(this).position().right ; etc... :-)