当前位置: 首页 > news >正文

输入框实现placeholder 变成 title 展示

需求:

  • 输入框需要有placeholder
  • 在输入框聚焦,或者有内容的时候 placeholder 要变成label 浮动在框内部
  • 浮动最好能有动画,不要很生硬的跳转

进程:

  • 既然placeholder 会变成title 那只有两种做法
    1、将label 隐藏在上方,并且在fouce 输入框的时候展示,并且隐藏 placeholder
    2、做一个假的placeholder 放在placeholder 的位置,并且在fouce 输入框的时候向上移动
  • 第一个方案比第二个方案要更加的麻烦,因为会有额外的行为,隐藏placeholder 并且在隐藏的同时展示label 如果两个文本位置不一致的话会有点突兀,所以这边推荐第二个方案
#tsx
import React from 'react'
import styles from './index.module.less'type InputFloatingProps = {label?: string;type?: string;onChange?: (value: string) => void;
}
const InputFloating: React.FC<InputFloatingProps> = ({ label, type, onChange }) => {return (<div className={styles.field}><input required type={type} onChange={e => {onChange?.(e.target.value)}} pl/><label>{label}</label></div>);
}
export default InputFloating
#less
.field {position: relative;margin-top: 24px;> input {width: 100%;padding: 24px 12px 8px;font-size: 16px;border: 1px solid #979797;border-radius: 6px;outline: none;&:focus + label, &:valid + label {top: 4px;font-family: PingFang SC;font-weight: 400;font-size: 12px;line-height: 22px;color: #979797;}}> label {position: absolute;left: 12px;top: 16px;color: #979797;pointer-events: none;transition: 0.18s ease;font-family: PingFang SC;font-weight: 400;font-size: 18px;line-height: 22px;}
}

效果:
初始
fouce

拓展:

  • &:focus + label 是表示当前focus 的input 同级的 下一个dom 如果是 label 就生效,必须是连续的,如果中间加了个span 或者是其他的什么就不会生效
  • &:focus ~ label 这个表示是当前focus 的input 同级的之后的所有的 label 都会触发
  • input:valid 表示当前的input 里面是合法的输入,但是有些浏览器 input 输入是空也会认为是合法的,所以需要input 里加上 required,不然可能默认就是在上面的
http://www.dtcms.com/a/583008.html

相关文章:

  • WinSCP无法连接CenOS7,解决
  • 盈佳国际天天做赢家网站wordpress仿北京时间
  • Fastapi 进阶四:Redis数据库及aioredis使用
  • Redis分布式锁的最佳实践:基于Redisson的实现方案
  • ui做的好看的论坛网站wordpress改字体
  • 做网站所需的知识技能在线域名解析ip地址查询
  • (111页PPT)智慧工地施工智能化解决方案(附下载方式)
  • vxe-table和sortablejs实现行拖动
  • brew安装JD-GUI并解决启动问题
  • 数组:额外加餐的第二天
  • 网站模板ftpthinkphp网站开发技术
  • php个人网站模板下载电子商务网站前台建设常用的技术有
  • 哈尔滨 房产网站建设wordpress如何清除导入的模板
  • 可做市值曲线的网站建设一个功能简单的网站
  • 【ComfyUI】Wan2.2 动态服饰描述驱动换装图生视频
  • 基于VibeVoice搭建语音合成demo
  • react项目使用json-server模拟接口获取数据
  • 荆州建设局网站邯郸信息港征婚
  • 有口碑的番禺网站建设深圳招聘网最新招聘信息
  • 网站前台如何刷新整合营销案例
  • 可以自己做网站卖东西搜索引擎优化规则
  • C++ this指针、常函数、内联函数
  • 网页设计制作网站大一素材网站集群怎么做
  • Hudson River Trading VO 面经分享|一场关于极限思维与逻辑速度的考验
  • html5企业网站案例企业免费自助建站系统
  • 企业建设网站价格成都专业网站搭建公司
  • 西宁建设网站软件百度导航最新版本免费下载
  • 网站开发后端菜鸟教程网站呢建设
  • JavaScript 使用技巧
  • 提高网站互动性台州住房和城乡建设部网站