在css3的标准中新增加了变形样式,这些样式使得网页中各元素的位置形状的变换变得更加容易。其语法如下:

  1. transformnone | <transform-function>+

其中对于<transform-function>这一属性值,css中规定了4类常用变换

1.translate()

该值指定对象的2D translation(2D平移)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0 。

例:

  1. .exp{
  2. width:150px;
  3. height:150px;
  4. background:red;
  5. }
  6. .exp:hover{
  7. transform:translate(100px,100px);
  8. }

  当鼠标移动到元素上时,元素的位置发生了改变(向左平移了100px,向下平移了100px)。

当然也可以指制定某一个方向上的平移,如translateX(),translateY(),这时,括号里的值只有一个,表示平移的长度。

2.rotate()

该值指定了对象的2d旋转,括号里面为旋转度数,单位为deg。特别注意,在使用该属性值时要先设置元素的中心点,即transform-origin,这个样式的值可以为表示长度的单位,也可以是百分比。

例:

  1. .exp{
  2. width:150px;
  3. height:150px;
  4. background:red;
  5. }
  6.  
  7. .exp:hover{
  8. transform-origin:0 50%;
  9. transform:rotate(45deg);
  10. }

  

在2d旋转中默认旋转方向为顺时针方向,旋转中心为transform-origin所设置的位置。同时,我们也可以定义其旋转方式为沿着旋转轴方向旋转,例如rotateX(),rotateY()。

3.Scale()

该属性表示的是元素的缩放,在2d变形中括号里的值有两个,分别表示x轴和y轴方向的缩放,其值为一数字,表示的是与原来尺寸的比例系数。

例:

  1. .exp{
  2. width:150px;
  3. height:150px;
  4. background:red;
    }
  5. .exp:active{
  6. transform-origin:0 50%;
  7. transform:scale(2,1.5);
  8. }

  

与上面的属性值类似,我们可以设置单一方向上的缩放,scaleX(),scaleY()。

4.Skew()

该属性值表示的是元素的倾斜,该值得两个参数分别表示X轴与Y轴上的倾斜,其值都以角度(deg)表示。

例:

  1. .exp{
  2. width:150px;
  3. height:150px;
  4. background:red;
  5. transform:skew(25deg,0);
  6. }

  

在倾斜中,最后所得的元素的位置与transform-origin有关。

上述的四个属性不仅适用于2d场景,同时也适用于3d场景中,此时只需要将其改写为translate3d(),rotate3d(),skew3d(),scale3d()。此时,坐标系中有XYZ三个坐标轴,其中X轴为水平方向,正方向为右,Y轴为垂直方向,正方向向下,Z轴为垂直屏幕的方向,垂直屏幕向外(即指向屏幕前的自己)为正方向。

了解了css中的变形之后,我们可以由此设计过渡动画。这里的过渡动画是指通过css使得元素的某些属性发生改变时,所产生的动画效果。在CSS中创建简单的过渡效果可以从以下几个步骤来实现:

第一,在默认样式中声明元素的初始状态样式;

第二,声明过渡元素最终状态样式,比如悬浮状态;

第三,在默认样式中通过添加过渡函数,添加一些不同的样式。

  1. transition-property(过渡属性):

表示在动画中所要产生动画效果的属性,这里的过渡属性可以设置任意的属性为值,我们也可以直接将它的值设置为all,表示每个产生变化的属性都产生动画效果。

  1. transition-duration(过渡所需时间):

该属性主要用来设置一个属性过渡到另一个属性所需的时间,也就是从旧属性过渡到新属性花费的时间长度,俗称持续时间。单位为s。

  1. .exp{
  2. width:150px;
  3. height:150px;
  4. background:red;
  5. transition-property:width;
  6. transition-duration:1s;
  7. }
  8. .exp:hover{
  9. width:300px;
  10. }

当鼠标移动到盒子上时,盒子缓慢得拉长。

3. transition-timing-function(动画--过渡函数) :

该属性表示的是当动画发生时,动画的表现效果。其值有:

ease:默认值,逐渐变慢(cubic-bezier(0.25,0.1,0.25,1))

linear:匀速过渡效果(等于 cubic-bezier(0,0,1,1))

ease-in:加速的过渡效果(等于 cubic-bezier(0.42,0,1,1))

ease-out:减速的过渡效果(等于 cubic-bezier(0,0,0.58,1))

ease-in-out:加速然后减速(等于cubic-bezier (0.42, 0, 0.58, 1.0))

cubic-bezier(n,n,n,n):在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。(动画速度自定义)

4.transition-delay(动画--过渡延迟时间):

transition-delay主要用来指定一个动画开始执行的时间,也就是说当改变元素属性值后多长时间开始执行。

例:

  1. .exp{
  2. width:150px;
  3. height:150px;
  4. background:red;
  5. transition-property:width;
  6. transition-duration:1s;
  7. transition-delay:1s;
  8. }
  9. .exp:hover{
  10. width:300px;
  11. }  

当鼠标移到盒子上时,盒子的宽度变为了300px,之后过了一秒钟,产生动画效果。

将以上多个属性连在一起,则可写为:

transition:[ none | <transition-property> ] || < transition-duration > || <transition-timing-function> || < transition-delay> [,*]

例:

  1. .exp{
  2. width:150px;
  3. height:150px;
  4. background:red;
  5. transition:width 1s ease 1s;
  6. }
  7. .exp:hover{
  8. width:300px;
  9. }

  

Css中的变形及过渡动画的更多相关文章

  1. CSS中的变形、过渡、动画效果

    一.变形 .过渡效果 1:元素平移 x方向 y方向 transform:translate(100px 100px); 2:过渡动画效果 a:什么属性参与过渡效果 b:过渡时间 c:过渡的效果 值包含 ...

  2. CSS 奇技淫巧:动态高度过渡动画

    这个问题源自于掘金上的一个留言,一个朋友问到,为什么我下面这段代码的高度过渡动画失效了? 伪代码大概是这样: { height: unset; transition: all 0.3s linear; ...

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

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

  4. CSS3中的变形与动画【转】

    最近在学习制作移动端的页面,做了一个微信页面的小demo,其中用到了很多的CSS3新增的内容,其中就有CSS3新增的变形和动画.其实这种CSS3的动画效果用JS也可以实现,不过CSS3能开启硬件加速, ...

  5. 重新想,重新看——CSS3变形,过渡与动画①

    学习CSS3,觉得最难记忆的部分除了flex特性之外,就要属变形,过渡和动画部分了.作为初学者,总有种犯懒的心理,想着既然IE8浏览器都不完全支持CSS动画属性,还要考虑浏览器兼容问题,那么就不那么着 ...

  6. 第8章 CSS3中的变形与动画(上)

    变形--旋转 rotate() 旋转rotate()函数通过指定的角度参数使元素相对原点进行旋转.它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度.如果这个值为正值,元素相对原点中心顺时 ...

  7. CSS中2d转换:transition过渡放在:hover伪类中与应用在整个元素中区别

    css的2d转换十分强大,能够在不使用js的情况下,实现页面的元素与用户之间更多动态的交互,增强用户体验.其中使用最多的就是hover伪类. 1.创建一个页面的div元素: <!DOCTYPE ...

  8. 067——VUE中vue-router之使用transition设置酷炫的路由组件过渡动画效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. CSS过渡动画之transition

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

随机推荐

  1. 关于MSHTML

    本文翻译自http://msdn.microsoft.com/workshop/browser/mshtml/overview/overview.aspMSDN Home >  MSDN Lib ...

  2. [置顶] ARM指令集和常用寄存器

    1) ARM指令集 32位的 ARM指令和 16位 的Thumb指令 1,寄存器寻址 MOV R1, R2  //将寄存器R2的值传给寄存器R1 2,立即寻址 MOV R0, #0XFF00 //数据 ...

  3. UVA10765-Doves and bombs(BCC)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=1706">题目链接 题意:给定一个n个点的 ...

  4. codeforce 437B The Child and Set

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  5. 3:url无规律的多页面爬取

    试例网站:豆瓣电影TOP250:http://movie.douban.com/top250 关键点:在审查元素下查看后页即可以看到跳转的url.而且最后一页就此属性就没有了. 由于关键是实现分页,所 ...

  6. Android --------- 命名规范

    工程 软件名称,最好是英文首字母大写:如MobileSafe. 包 企业单位网址的倒序+软件名称:如com.baidu.mobilesafe. 类 类中分为:(头字母小写,其他每个单子首字母大写) 1 ...

  7. OpenXML_导入Excel到数据库

    (1).实现功能:通过前台选择.xlsx文件的Excel,将其文件转化为DataTable和List集合 (2).开发环境:Window7旗舰版+vs2013+Mvc4.0 (2).在使用中需要用到的 ...

  8. 高放的c++学习笔记之lambda表达式

    lambda表达式:可以让代码看起来更整洁,有些结构简单且用的次数少的函数可以用lambda表达式替代, 通常结构是这样的[捕获列表](参数列表){函数部分} 捕获列表: lambda表达式如果在一个 ...

  9. sql server 查找指定字符串的位置

    create function fn_find(@find varchar(8000), @str varchar(8000), @n smallint) returns int as begin i ...

  10. 对mysql进行分表

    1. 有某个自段进行md5散列,然后生成ord SCII码 $num = ord(md5($user)) //是一个数字 参考 $num/3 ,$num/4;如果我们不是严格意义上的分表,可以参考分布 ...