【逆战班】

动画可以让一个元素具有动态的效果,这个过程是使元素从一种样式变成另一个样式的过程。我们可以通过设置关键帧的方法来控制动画在某个时间节点的运动方式。通常设置多个节点来实现复杂的动画效果。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过渡、动画及变形的基本属性与运用的更多相关文章

  1. CSS过渡动画之transition

    O(∩_∩)O~ 这两天在看看CSS的相关内容,关于transition动画感觉很有意思,分享一下. CSS负责给html加效果,自然少不了各种动画,今天介绍一下transition. 概述 看一段比 ...

  2. CSS 过渡动画

    一.过渡 过渡(transition)是CSS3中具有颠覆性的特征之一,可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 在CSS3 ...

  3. 12 react 基础 的 css 过渡动画 及 动画效果 及 使用 react-transition-group 实现动画

    一. 过渡动画 # index.js import React from 'react';import ReactDOM from 'react-dom';import App from './app ...

  4. css过渡动画

    具体代码:1.水平翻转-moz-transform:scale(-1,1);-webkit-transform:scale(-1,1);-o-transform:scale(-1,1);transfo ...

  5. CSS基础篇之背景、过渡动画

    background-origin(背景原点) 设置元素背景图片的原始起始位置.必须保证背景是background-repeat为no-repeat属性才能生效. background-origin: ...

  6. vue过渡 & 动画---进入/离开 & 列表过渡

    (1)概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS 动画库,如 Animat ...

  7. 基于 React 实现一个 Transition 过渡动画组件

    过渡动画使 UI 更富有表现力并且易于使用.如何使用 React 快速的实现一个 Transition 过渡动画组件? 基本实现 实现一个基础的 CSS 过渡动画组件,通过切换 CSS 样式实现简单的 ...

  8. 058_末晨曦Vue技术_过渡 & 动画之过渡的类名

    进入/离开 & 列表过渡 点击打开视频讲解更加详细 概述 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.包括以下工具: 在 CSS 过渡和动画中自动应用 class ...

  9. Css中的变形及过渡动画

    在css3的标准中新增加了变形样式,这些样式使得网页中各元素的位置形状的变换变得更加容易.其语法如下: transform:none | <transform-function>+ 其中对 ...

随机推荐

  1. 指定linux 下默认python版本

    sudo rm -rf python sudo ln -s /usr/bin/python3 /usr/bin/python

  2. java centos7 gcc编码 解决socket通信 汉字乱码

    1.把 Java eclipes 设置编码成utf-8 windows->preference->workspace 2.centos7 gcc 默认为utf-8

  3. 900B. Position in Fraction#分数位置(模拟)

    题目出处:http://codeforces.com/problemset/problem/900/B 题目大意:找到一个数字在小数部分中第一次出现的位置 #include<iostream&g ...

  4. VSFTP服务搭建

    title date tags layout CentOS6.5 Vsftp服务安装与配置 2018-09-04 Centos6.5服务器搭建 post 1.安装vsftp服务 [root@local ...

  5. Graylog

    Graylog #Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集.检索.可视化 ​#Graylog 架构 - Graylog 负责接收来自各种设备和应用的日志,并为用 ...

  6. 吴裕雄--天生自然python学习笔记:python 用 Open CV 进行人脸识别

    要对特定图像进行识别,最关键的是要有识别对象的特征文件, OpenCV 己内置 了人脸识别特征文件,我们只需使用 OpenCV 的 CascadeClassifier 类即可进行识别 . 创建 Cas ...

  7. J. Stone game(背包问题)

    题:https://nanti.jisuanke.com/t/41420 定义 dp[x][y] 表示第 x 个数到最后一个数能组成和为 y 的方案数 #include<bits/stdc++. ...

  8. 《C程序设计语言》练习1-5

    #include<stdio.h> /*修改温度转换程序,要求以逆序(即按照从300度到0度的顺序)打印温度转换表*/ main () { float fahr,celsius; int ...

  9. redis中间件

    redis的集群:集群策略:主从复制(从库从主库同步获取数据,本身不提供服务)哨兵(监控主库和从库,当主库挂的时候自动把从库选一个切换为主库,主库存放的是全量数据)集群参考:https://blog. ...

  10. python学习笔记(0)python基础概念

    一.字符集 说字符集之前,先说下2进制的故事,计算机比较傻只认识2进制,什么是2进制,就是0,1,计算机只认识这俩数字,其他的都不认识,这样的0或1为一"位",规定8位为一个字节, ...