javascript - 如何使用 js 和 css 实现 的标签输入效果?
天蓬老师
天蓬老师 2017-04-11 11:26:01
[JavaScript讨论组]

如图,想做一个类似于这样的标签输入 widget。以下的一些特性不知道怎么实现比较好,求有经验者指教。

  1. 输入逗号或者分号后自动转成如上的标签效果。

  2. 在标签后按消除键删除标签。

  3. 限制最多输入 X 个标签。

还有一些高级的功能:

  1. 输入标签的同时自动提示补全。

  2. 自带提示。

可能描述的不是很清晰,具体特性可以打开一个问题发布页面实际体验。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(4)
怪我咯

一会吃完饭再来完善,刚撸了点demo地址

伊谢尔伦

吃了午饭闲着也撸了一个——

demo

PHP中文网

一贯的说思路,不贴代码。

先回答前面的1,2,3:
1,既然是输入,当然是用事件监听的方式,然后调用对应的判断函数;
2,原理基本同1;
3,还是同1

大致逻辑为:EventListener -> Function -> Operate DOM

其次是高级功能:
1,自动补全嘛有很多实现原理,可以异步的从服务器去取,也可以是首次渲染的时候缓存的本地。然后再查询出来。
2,原理同上

大家讲道理

Input框监听键盘事件,输入变化时获取建议项(也可以不这样,换作回车添加项),然后input需要在外面加一个wrapper,灰框实现是应用在wrapper上的,input框宽度是变化的(宽度需要动态计算),input的宽度是已输入的标签,到行尾之间的宽度。你得意识到,当换行时,这需要做好处理。键盘事件也得处理delete,backspace,left,right,因为你可能需要通过键盘进行选择、删除。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号