在facebook状态框中,如果你输入“@”,就会出现朋友的名字列表。我正在尝试实现这样一个状态框。
但问题是:
在输入'@‘时,’div‘的位置应该在哪里,如何显示列表?我就是搞不懂它。
我通过了this的SOF问题,但实际上并没有讨论这个。
有没有人能尽可能多地阐明这一点?
我的选择是jquery。
发布于 2012-03-06 07:43:06
在facebook上快速浏览一下,似乎有一个<div>
标签,它将突出显示的内容与文本内容一起呈现出来。
文本通过<textarea>
元素上的onKeyUp事件一次捕获一个键击(透明的,覆盖在带有可见内容的div之上),并转置到<div>
元素中。当检查key up事件时,只需检查key是否为'@‘并触发菜单事件。
发布于 2012-03-04 12:12:33
我敢肯定Facebook使用了一个带有contenteditable
的元素,因为当你输入它的时候,超链接就会出现在行内。
或者,如果您不想格式化名称,您可以创建一个具有完全相同的字体CSS属性的新元素,测量偏移量并使dropdown元素出现在与textarea
相同的偏移量处。
https://stackoverflow.com/questions/9554666
复制相似问题