CSS过渡、动画及变形的基本属性与运用
【逆战班】
动画可以让一个元素具有动态的效果,这个过程是使元素从一种样式变成另一个样式的过程。我们可以通过设置关键帧的方法来控制动画在某个时间节点的运动方式。通常设置多个节点来实现复杂的动画效果。0%是动画的开始时间,100%是动画的完成。
一、transition(过渡)
transition主要包含四个属性:
执行变换的属性:transition-property
规定设置过渡效果的CSS属性的名称。all ( 默认值 ) , 指定 width , height;
变换时间:transition-duration
规定完成过渡效果需要多少秒或毫秒。
速率变化:transition-timing-function
规定速度效果的速度曲线。运动形式:加速、减速、匀速...
liner(匀速)
ease(默认值)
ease-in(加速)
ease-out(减速)
ease-in-out(加速然后减速)
cubic-bezier(自定义属性值)
变换延迟时间:transition-delay
定义过渡效果何时开始。例如:1s : 延迟1秒进行过渡,-1s : 提前1秒进行过渡
下面来做一个简单的案例:
首先定义一个容器
<body>
<div id="box"></div>
</body>
然后给容器添加transition属性和背景色
<style>
#box{ width:100px; height: 100px; background:red;
transition-duration : 2s;
transition-property : all;
transition-delay: 1s;
transition-timing-function: linear;
}
</style>
当鼠标移入时让容器改变大小和背景色
#box:hover{width: 200px;
height: 200px;
background-color: blue;}
这样就做了一个简单的案例,当鼠标移入之后容器会在两秒后变大,并且背景色会变成蓝色
二、animation(动画)
1.定义动画轨迹
@keyframes name {
0% {}
100% {}
}
2.调用动画
animation-name : 设置动画的名字
animation-duration : 动画的持续时间
animation-delay : 动画的延迟时间
animation-iteration-count : 动画的重复次数 ,默认值就是1 ,infinite无限次数
animation-timing-function : 动画的运动形式
liner(匀速)
ease(默认值)
ease-in(加速)
ease-out(减速)
ease-in-out(加速然后减速)
#box2{ width:100px; height:100px; background:red;
animation-name: name;
animation-duration: 2s;
animation-delay: 3s;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
三、transform(变形)
translate : 位移
transform:translate(X,Y); 元素向指定点移动
transform:translateX(X);元素沿X轴移动
transform:translateY(Y); 元素沿Y轴移动
transform:translateZ(Z); 元素沿Z轴移动(3D)
scale : 缩放
transform:scale(num) num是一个比例值,正常比例是1。
transform:scale(num1 , num2) 两个值 分别对应宽和 高
transform:scaleX()通过设置X轴的值来定义缩放转换。
transform:scaleY()通过设置Y轴的值来定义缩放转换。
transform:scaleZ()通过设置Z轴的值来定义 3D 缩放转换。
rotate : 旋转
transform:rotate(num) num是旋转的角度 单位:deg ,正值:顺时针旋转,负值:逆时针旋转
rotateX()定义沿着 X 轴的3D旋转。
rotateY()定义沿着 Y 轴的3D旋转。
rotateZ()定义沿着 Z 轴的3D旋转。
skew : 斜切
transform:skew(num1,num2) : num1和num2都是角度,针对的是x 和 y
transform:skewX()定义沿着 X 轴的倾斜转换。
transform:skewY()定义沿着 Y 轴的倾斜转换。
注:skew没有3d写法。
tranform-origin:基点
tranform-origin(x,y,z)设置元素运动基点,默认值:center,center,0
@keyframes name {
0% { transform:translate(0,0); }
25%{ transform:translate(300px,0); }
50%{ transform:translate(300px,300px); }
75%{ transform:translate(0,300px); }
100% { transform:translate(0,0);}
}
四、3D动画
perspective(景深) : 离屏幕多远的距离去观察元素,值越大幅度越小。
transform-style : 3D空间:flat (默认值2d)、preserve-3d (3d,产生一个三维空间)
perspective-origin : 景深-基点位置,观察元素的角度。取值:left、right、top……
backface-visibility : 背面隐藏 hidden、visible (默认值)
CSS过渡、动画及变形的基本属性与运用的更多相关文章
- CSS过渡动画之transition
O(∩_∩)O~ 这两天在看看CSS的相关内容,关于transition动画感觉很有意思,分享一下. CSS负责给html加效果,自然少不了各种动画,今天介绍一下transition. 概述 看一段比 ...
- CSS 过渡动画
一.过渡 过渡(transition)是CSS3中具有颠覆性的特征之一,可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 在CSS3 ...
- 12 react 基础 的 css 过渡动画 及 动画效果 及 使用 react-transition-group 实现动画
一. 过渡动画 # index.js import React from 'react';import ReactDOM from 'react-dom';import App from './app ...
- css过渡动画
具体代码:1.水平翻转-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);-o-transform:scale(-1,1);transfo ...
- CSS基础篇之背景、过渡动画
background-origin(背景原点) 设置元素背景图片的原始起始位置.必须保证背景是background-repeat为no-repeat属性才能生效. background-origin: ...
- vue过渡 & 动画---进入/离开 & 列表过渡
(1)概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS 动画库,如 Animat ...
- 基于 React 实现一个 Transition 过渡动画组件
过渡动画使 UI 更富有表现力并且易于使用.如何使用 React 快速的实现一个 Transition 过渡动画组件? 基本实现 实现一个基础的 CSS 过渡动画组件,通过切换 CSS 样式实现简单的 ...
- 058_末晨曦Vue技术_过渡 & 动画之过渡的类名
进入/离开 & 列表过渡 点击打开视频讲解更加详细 概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class ...
- Css中的变形及过渡动画
在css3的标准中新增加了变形样式,这些样式使得网页中各元素的位置形状的变换变得更加容易.其语法如下: transform:none | <transform-function>+ 其中对 ...
随机推荐
- tessereact的链接收藏
http://www.sohu.com/a/323153211_823210 https://www.cnblogs.com/tongye/p/10734342.html https://github ...
- SAP PM:设备主数据常用BAPI
如下参考: STATUS_CHANGE_EXTERN BAPI_EQMT_MODIFY BAPI_EQUI_CHANGE PM BAPI: Change Equipment BAPI_EQUI_CRE ...
- 实验报告8 AC+Fit AP组网通过三层网络注册(DHCP Option 43)
实验报告8 课程名称 无线网络与安全技术 实验名称 AC+Fit AP组网通过三层网络注册(DHCP Option 43) 姓名 学号 班级 实 验 目 的 [实验目的] 了解AC+Fit AP跨 ...
- 40)PHP,mysql_fetch_row和mysql_fetch_array和mysql_fetch_assoc的区别
分析: mysql_fetch_row,这个函数是从结果集中取一行作为枚举数据,从和指定的结果标识关联的结果集中取得一行数据并作为数组返回.每个结果的列储存在一个数组的单元中,偏移量从 开始. 注意, ...
- day43-线程概念
#1.进程:程序不能单独运行,要将程序加载到内存当中,系统为它分配资源才能运行,而这种执行的程序就是进程. #程序和进程的区别在于:程序是指令的集合,它是进程运行的静态描述文本:进程是程序的一次执行活 ...
- 客户端和后台交互日期注意点 sqlite日期字段使用Date类型的情况下
不要直接传递时间类型 一般把时间格式化字符串后传递 不要传递Date().getTime() 毫秒数 非要使用的话需要在后台处理 传递的毫秒数 - TimeZone.getDefault().get ...
- Mock测试,何去何从
2016-10-24 出处:Qtest之道 作/译者:闫耀珍 上面的情景是不是似曾相识呢?现今的业务系统已经很少是孤立存在的了,尤其对于一个大公司而言,各个部门之间的配合非常密切,我们或多或 ...
- hashCode() 和 equals()比较
1. 首先equals()和hashCode()这两个方法都是从Object类中继承过来的. equals()方法在Object类中定义如下: public boolean equals(Object ...
- VSAN磁盘扩容与收缩(二)
- Docker 安装 CentOS
Docker 安装 CentOS CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise ...