Css中的变形及过渡动画

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

transform:none |  <transform-function>+

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

1.translate()

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

例:

.exp{
width:150px;
height:150px;
background:red;
}
.exp:hover{
transform:translate(100px,100px);
}

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

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

2.rotate()

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

例:

.exp{
width:150px;
height:150px;
background:red;
}

.exp:hover{
transform-origin:0 50%;
transform:rotate(45deg);
}

  

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

3.Scale()

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

例:

.exp{
width:150px;
height:150px;
background:red;}
.exp:active{
transform-origin:0 50%;
transform:scale(2,1.5);
}

  

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

4.Skew()

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

例:

.exp{
width:150px;
height:150px;
background:red;
transform:skew(25deg,0);
}

  

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

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

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

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

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

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

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

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

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

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

.exp{
width:150px;
height:150px;
background:red;
transition-property:width;
transition-duration:1s;
}
.exp:hover{
width:300px;
}

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

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主要用来指定一个动画开始执行的时间,也就是说当改变元素属性值后多长时间开始执行。

例:

.exp{
width:150px;
height:150px;
background:red;
transition-property:width;
transition-duration:1s;
transition-delay:1s;
}
.exp:hover{
width:300px;
}  

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

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

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

例:

.exp{
width:150px;
height:150px;
background:red;
transition:width 1s ease 1s;
}
.exp:hover{
width:300px;
}

  

时间: 2024-10-12 12:25:54

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

css3变形 过渡 动画

CSS3 变形/变换 相关属性 transform 设置或检索对象的检索(none 2D 3D) transform-origin:设置或检索对象以某个原点进行检索 transform-style: flat(默认)指定子元素位于次元素所在平面内/preserve-3d 指定子元素定位在三维空间内 perspective: 长度单位 指定观察者距离平面的距离 perspective-origin 指定观察者的位置 left/right/center backface-visibialbe: vi

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

background-origin(背景原点) 设置元素背景图片的原始起始位置.必须保证背景是background-repeat为no-repeat属性才能生效. background-origin:border-box|padding-box|content-box: border-box 这是用border-box时图片位于边框左上角 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g

CSS3中的变形与动画【转】

最近在学习制作移动端的页面,做了一个微信页面的小demo,其中用到了很多的CSS3新增的内容,其中就有CSS3新增的变形和动画.其实这种CSS3的动画效果用JS也可以实现,不过CSS3能开启硬件加速,性能更好. (下面均没写浏览器前缀,如有需要请自行添加~~) CSS3常见的动画效果的实现,其实主要是靠 transition和 animation . 而通常,这两个又会和CSS3中的新属性transform 来搭配使用 那么这三个东西其实是干什么用的呢?我按我自己的理解来下个简单结论. tran

从零开始学习前端开发 — 15、CSS3变形基础过渡、动画

一.css3过渡 语法: transition: 过渡属性 过渡时间 延迟时间 过渡方式; 1.过渡属性(transition-property) 取值:all 所有发生变化的css属性都添加过渡 eg: transition: all 1s; ident 指定要过渡的css属性列表 eg: transition:border-radius 1s,background 2s; none 没有属性发生过渡 注:我们可以省略滑过状态或其他状态的过渡属性,但是不能省略初始状态的transition属性

CSS过渡动画之transition

O(∩_∩)O~ 这两天在看看CSS的相关内容,关于transition动画感觉很有意思,分享一下. CSS负责给html加效果,自然少不了各种动画,今天介绍一下transition. 概述 看一段比较学术的定义:transition主要负责页面的过渡效果,transition可以使css的属性值在一定时间内平滑地过渡.这种效果可以在鼠标划过.点击.获得焦点或者对元素的任何改变中触发,并平滑地以动画效果改变css的属性值. transition的几个常用属性 1.transition-prope

背景样式、列表样式、变形样式、过渡动画

背景样式 背景原点:background-origin : border-box(从border区域(含border)开始显示背景图像.) padding-box(从padding区域(含padding)开始显示背景图像.) content-box(从content区域开始显示背景图像.) <style type="text/css"> .box{ width: 250px; height: 250px; float: left; margin-left: 20px; pa

CSS3中的变形与动画(二)

CSS3动画 过渡属性transiton-property 早期在Web中要实现动画效果,都是依赖于JavaScript或Flash来完成.但在CSS3中新增加了一个新的模块transition,它可以通过一些简单的CSS事件来触发元素的外观变化,让效果显得更加细腻.简单点说,就是通过鼠标的单击.获得焦点,被点击或对元素任何改变中触发,并平滑地以动画效果改变CSS的属性值. 在CSS中创建简单的过渡效果可以从以下几个步骤来实现: 1.在默认样式中声明元素的初始状态样式: 2.声明过渡元素最终状态

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

css的2d转换十分强大,能够在不使用js的情况下,实现页面的元素与用户之间更多动态的交互,增强用户体验.其中使用最多的就是hover伪类. 1.创建一个页面的div元素: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>2d转换测试</title> </head> <body> <div id="fr&

CSS3中的变形与动画

CSS3变形--旋转 rotate() 旋转rotate()函数通过指定的角度参数使元素相对原点进行旋转.它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度.如果这个值为正值,元素相对原点中心顺时针旋转:如果这个值为负值,元素相对原点中心逆时针旋转.如下图所示: HTML代码: <div class="wrapper"> <div></div> </div> CSS代码: .wrapper { width: 200px; he