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;}
动态边框
效果图
原理和代码
如动态图所示,有 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
web前端动画专题(2):输入框特效
下载Word文档到电脑,方便收藏和打印~
猜你喜欢
web前端动画专题(2):输入框特效
编程热搜
Python 学习之路 - Python
一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-chatgpt的中文全称是什么
chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列C/C++可变参数的使用
可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃Python 3 教程
Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 PythonPython pip包管理
一、前言 在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install 和 pip , 目前官方推荐使用 pip。
编程资源站
- 资料下载
- 历年试题