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

变换,动画

面试题——需求:在不知道父元素与子元素的宽高时
如何让子元素在父元素内居中?
1.定位 父相子绝
2.子元素 top:50% left:50%
3.子元素 transform: translate(-50%,-50%)

        .parent{height: 500px;background-color: red;position: relative;}.child{width: 200px;height: 200px;background-color: yellow;position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);}
<div class="parent"><div class="child"></div>
</div>

在这里插入图片描述

旋转变换(需要设置旋转的角度)

旋转有3个方向
延x轴transform:rotateX(30deg) 延x轴旋转30度
延y轴transform:rotateY(30deg) 延y轴旋转30度
延z轴transform:rotateZ(30deg) 延z轴旋转30度
transform:rotate(30deg)延z轴旋转30度

修改旋转的基准点

transform-origin:
默认值:center 元素的正中心
可选值:top left (0 0) 元素左上角
top center (50% 0) 上边线中点
top right (100% 0) 右上角
bottom left (0 100%) 左下角
bottom center (0 100%) 下边线中点
bottom right (0 100%) 右下角

放大与缩小

transform:scaleX(2) 宽度乘以2
scaleY(0.6) 高度乘以0.6
scale(1.5)宽高都乘以1.5 最常见
特殊的:scaleX(-2) 先延X轴翻转,然后宽度乘以2
scaleY(-0.6)先延Y轴翻转,然后高度乘以0.6
scale(-1.5)沿X轴和Y轴都翻转,然后宽高都乘以1.5

动画

设置关键帧

        @keyframes changeBgcolor {0%{background-color: red;}100%{background-color: yellow;}}
        div{background-color: red;width: 100px;height: 100px;animation: changeBgcolor 10s;}

@keyframes 关键字
changeBgcolor 给动画关键帧取名字
关键帧内必须设置
0% 初始样式
100% 结束样式
在元素的样式中使用动画关键帧可以让这个元素从0%的样式变化到100%的样式,形成动画
此例中,div使用了动画关键帧changeBgcolor,所以div的样式会从红色背景变化到绿色背景。

动画和过渡的区别

1.动画自动播放,过渡需要伪类触发
2.过渡只要来时状态和结束状态
3.动画通过关键帧可以在多个样式间切换

动画的使用

关键帧名称
animation-name: 无默认值

动画执行时间
animation-duration: 无默认值

动画的变化速率
animation-timing-function: 默认值 ease 可选值 linear

动画延迟时间
animation-delay: 默认值 0s

动画执行次数
animation-iteration-count: 默认值1
可选值: 任意大于0的整数
infinite 无限次

是否回到初始样式
animation-fill-mode: 默认值 backwards (回到动画动画执行之前的样式)
可选值:forwords 保持在动画结束节点(100%关键帧)的样式

动画是否自动播放
animation-play-state: 默认值 running 自动播放

可选值:pause 不自动播放
注:非自动播放需要伪类触发播放

动画简写
animation: 动画关键帧名称 执行时间

相关文章:

  • 计算机网络 八股
  • AJAX-常用请求方法和数据提交
  • IP-guard邮件管控再升级,记录屏幕画面,智能阻断泄密邮件
  • 零基础学习JS--基础篇--索引集合类
  • Xilinx 7系列FPGA的配置流程
  • QT----写完的程序打包为APK在自己的手机上运行
  • 设计MySQL数据表的几个注意点
  • python:布伊山德U检验(Buishand U test,BUT)突变点检测(以NDVI时间序列为例)
  • 「AI工程师」数据处理与分析-工作指导
  • c语言,大宗撮合交易中心系统核心模块代码
  • Toyota Programming Contest 2024#3(AtCoder Beginner Contest 344)(A~C)
  • 【C/C++】常量指针与指针常量的深入解析与区分(什么是const int * 与 int * const ?)
  • [渗透教程]-013-嗅探工具-wireshark操作
  • python脚本批量关闭exe文件
  • 数据分析-Pandas最简单的方法画矩阵散点图
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 《Java编程思想》读书笔记-对象导论
  • bearychat的java client
  • Elasticsearch 参考指南(升级前重新索引)
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java IO学习笔记一
  • Java 内存分配及垃圾回收机制初探
  • nginx 负载服务器优化
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Swift 中的尾递归和蹦床
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 今年的LC3大会没了?
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 码农张的Bug人生 - 见面之礼
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 使用Gradle第一次构建Java程序
  • ionic异常记录
  • 昨天1024程序员节,我故意写了个死循环~
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (6)STL算法之转换
  • (C++17) std算法之执行策略 execution
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (done) 两个矩阵 “相似” 是什么意思?
  • (编译到47%失败)to be deleted
  • (补)B+树一些思想
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (原)Matlab的svmtrain和svmclassify
  • (原創) 物件導向與老子思想 (OO)
  • (转)ABI是什么
  • (转)甲方乙方——赵民谈找工作
  • .Net 8.0 新的变化
  • .NET Core 项目指定SDK版本
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET Standard 的管理策略
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net6+aspose.words导出word并转pdf
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka