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>+ 其中对 ...
随机推荐
- [原]C++新标准之std::chrono::time_point
原 总结 STL 标准库 chrono time_point ratio 概览 类定义 总结 思考 拓展 system_clock steady_clock high_resolution_cloc ...
- [原]PInvoke导致栈破坏
原, 总结, 调试, 调试案例 项目中遇到一个诡异的问题,程序在升级到.net4.6.1后会崩溃,提示访问只读内存区.大概现象如下: debug版不崩溃,release版稳定崩溃. 只有x64位的程 ...
- Git与IDEA集成
软件配置: 系统版本:Windows10 JDK版本:1.8 Git版本:2.19.1 IDEA版本:2016.3 Maven版本:3.5.4 Git安装: Git下载地址:https://git-s ...
- 为什么使用 document.write 需要将</script>拆分开
福州SEO:细心点的朋友可能会注意到,有些网站使用document.write动态加载JS的时候需要把</script>拆分开来写?如下面的例子所示: <script type='t ...
- GIL全局解释器锁-死锁与递归锁-信号量-event事件
一.全局解释器锁GIL: 官方的解释:掌握概念为主 """ In CPython, the global interpreter lock, or GIL, is a m ...
- oracle时间处理tochar的黑幕坑
建议改成 在用别人黑不隆东,各种商业套路洗脑下的产品时,能简约弱智就被给自己留坑 做技术没踩过h2这类开源数据库的源码设计,即使砸了一堆时间看了<数据库系统基础教程>,<数据库系统实 ...
- Ubuntu 设置静态 IP
一.背景 如果没有设置静态IP,由于某些情况,会导致系统的 IP 地址发生变化. 为了避免 IP 发生变化,就需要进行静态 IP 的设置. 注:这里 Ubuntu 版本为 19.10 二.解决方案 1 ...
- [LC] 23. Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. E ...
- Qt QString的arg()方法的使用
1.QString的arg()方法用于填充字符串中的%1,%2...为给定的参数,如 QString m = tr("); // m = "12:60:60: 2.它还有另外一种重 ...
- ZooKeeper基本讲解及使用
本文摘录于:http://blog.51cto.com/tchuairen/1859494:https://blog.csdn.net/peace1213/article/details/525714 ...