城市选择JavaScript表单交互特效
城市选择的 JS 特效,算是表单交互里的老朋友了。尤其在注册、收货地址这种地方,用户选起来爽,体验感直接加分。
DOM 操作方面,最基本的下拉列表,靠document.querySelector
或者innerHTML
这些老工具就能搞定,简单明了。
加上事件,比如点个省份,自动加载下面的市区,用addEventListener
或者 jQuery 的.on()
监听事件,响应也快,代码也简单。
数据结构建议用个嵌套的JSON
对象,好找也好维护。像{"广东": ["广州", "深圳"]}
这种写法,用forEach
一遍过,没啥压力。
有些项目城市多得吓人,直接全加载太傻了。这时候用异步加载就香,比如配合fetch
或者老牌的$.ajax
,只加载当前选项,速度会快不少。
想做得再高级点?加个搜索功能吧。输入“北”,马上出“北京”“北海”那种,前端匹配就能搞定,效率高体验也更人性化。
还有性能优化,比如用事件委托就实用。你可以把监听挂在父节点上,子元素变化时也能正常响应,内存占用小多。
响应式设计别忘了,现在移动端占大头,样式上建议用flex
布局配media query
,样式干净不容易出错。
无障碍也要考虑一下,是要让屏幕阅读器能正确识别。像aria-label
这种属性,没啥难度但加分。
要是你用前端框架的话,Vue、React 都能搞得更爽,封装成组件后复用也方便,像 React 里直接写个
,就优雅。
,如果你项目是多语言的,国际化别落下。城市名配合i18n
工具包翻译一下,能省后期多事。
文件texiao3867_1560681018
里估计封装好了这些功能,有空研究下源码,说不定你项目里就能直接用上。
想补补基础的,可以看看下面这些资料:
如果你正在做表单交互,或者要做收货地址功能,这种城市选择的 JS 特效还挺值得一试的。