文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

web前端动画专题(2):输入框特效

2023-06-03 10:49

关注

特效一览

划线动态

web前端动画专题(2):输入框特效

动态边框

web前端动画专题(2):输入框特效

划线动态

效果图

web前端动画专题(2):输入框特效

原理和代码

:before:after伪元素指定了一个元素文档树内容之前和之后的内容。由于input标签不是可插入内容的容器。所以这里下划线无法通过伪元素来实现。需要借助其他 dom 节点。

<div>  <input type="text" />  <span></span></div>web前端开发学习Q-q-u-n: 784783012 ,分享开发工具,零基础,进阶视频教程,希望新手少走弯路

包裹在外的父元素div应该设置成inline-block,否则宽度会满屏。

div {  position: relative;  display: inline-block;}

input 标签需要禁用默认样式:

input {  outline: none;  border: none;  background: #fafafa;}

span标签实现「左进右出」的动态,需要改变transform-origin方向。为了避免回流重绘,通过scaleX来实现宽度变化的视觉效果。

input ~ span {  position: absolute;  left: 0;  right: 0;  bottom: 0;  height: 1px;  background-color: #262626;  transform: scaleX(0);  transform-origin: right center;  transition: transform 0.3s ease-in-out;}input:focus ~ span {  transform: scaleX(1);  transform-origin: left center;}

动态边框

效果图

web前端动画专题(2):输入框特效

原理和代码

如动态图所示,有 4 条边框。所以除了input元素外,还需要准备其他 4 个 dom。为了方便定位,嵌套一个父级元素。

<div>  <input type="text">  <span class="bottom"></span>  <span class="right"></span>  <span class="top"></span>  <span></div>web前端开发学习Q-q-u-n: 784783012 ,分享开发工具,零基础,进阶视频教程,希望新手少走弯路

和「划线动态」类似,input 和 div 的样式基本一样。为了好看,改一下 padding 属性。

div {  position: relative;  display: inline-block;  padding: 3px;}input {  outline: none;  border: none;  background: #fafafa;  padding: 3px;}

对于其他 4 个 span 元素,它们的位置属性,动画属性,以及颜色都是相同的:

.bottom,.top,.left,.right {  position: absolute;  background-color: #262626;  transition: transform 0.1s ease-in-out;}

对于.bottom 和.top,它们的变化方向是水平;对于.left 和.right,它们的变化方向是垂直。

.bottom,.top {  left: 0;  right: 0;  height: 1px;  transform: scaleX(0);}.left,.right {  top: 0;  bottom: 0;  width: 1px;  transform: scaleY(0);}

下面就是处理延时的特效。动态图中,动画按照下、右、上、左的顺序依次变化。借助的是transition-delay属性,来实现动画延迟。

.bottom {  bottom: 0;  transform-origin: right center;}input:focus ~ .bottom {  transform: scaleX(1);  transform-origin: left center;}.top {  top: 0;  transform-origin: left center;  transition-delay: 0.2s;}input:focus ~ .top {  transform: scaleX(1);  transform-origin: right center;}.right {  transform-origin: top center;  right: 0;  transition-delay: 0.1s;}input:focus ~ .right {  transform: scaleY(1);  transform-origin: bottom center;}.left {  left: 0;  transform-origin: bottom center;  transition-delay: 0.3s;}input:focus ~ .left {  transform: scaleY(1);  transform-origin: top center;}web前端开发学习Q-q-u-n: 784783012 ,分享开发工具,零基础,进阶视频教程,希望新手少走弯路

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯