【问题标题】:type @, show a name list like facebook status box输入@,显示一个名字列表,如facebook状态框
【发布时间】:2012-03-04 11:59:13
【问题描述】:

在 facebook 状态框中,如果您输入“@”,则会出现朋友姓名列表。我正在尝试实现这样的状态框。

但问题是:

在输入“@”时,“div”的位置应该在哪里以及如何显示列表?我就是想不通。

我查看了this SOF 的问题,但实际上并没有讨论这个问题。

有人尽可能地阐明它吗?

我的选择是 jquery。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    快速浏览一下 facebook,似乎有一个 <div> 标记,它在文本内容旁边呈现突出显示的内容。

    文本由<textarea> 元素上的onKeyUp 事件一次捕获一个键击(透明并覆盖在具有可见内容的div 顶部)并转置到<div> 元素中。在检查按键事件时,只需检查按键是否为“@”并触发菜单事件。

    【讨论】:

    • html怎么写在textarea里面?
    • HTML 未写入文本区域内。 textarea 是透明的 - 浮动在包含 HTML 的 DIV 上方。
    • 您在原始帖子中链接到的问题中深入介绍了 DOM 结构。
    【解决方案2】:

    我确定 Facebook 使用带有 contenteditable 的元素,因为超链接在您键入时会显示为内联。

    或者,如果您不想格式化名称,您可以创建一个具有完全相同字体 CSS 属性的新元素,测量偏移量并使下拉元素出现在与 textarea 相同的偏移量处。

    【讨论】:

    • 不是 contenteditable 仅适用于 html5(并非所有浏览器都支持)?从你的回复开始,我真的无法理解任何东西,你能把它变得更容易吗?
    • @IstiaqueAhmed 据我所知,它是在 HTML5 中定义的,但浏览器支持很久了。
    • 等待您的澄清。
    猜你喜欢
    • 2011-08-12
    • 2013-12-15
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    相关资源
    最近更新 更多