CSS的transform、transition和animation属性

1.transform(倾斜):利用transform属性可以使导航栏稍微倾斜,或者使图片在访问者的鼠标经过它时放大两倍,甚至可以结合更多transform属性设计出其他效果。

例如,要旋转一个元素,要先提供关键字rotate,后面是要旋转的度数:

transform:rotate(10deg);   这条声明是将元素沿顺时针方向旋转10°。

解决兼容问题必须这样改写代码:

-webkit-transform:rotate(10deg);

-moz-transform:rotate(10deg);

-o-transform:rotate(10deg);

-ms-transform:rotate(10deg);

transform:rotate(10deg);

其中-ms-prefix是微软公司的供应商前缀。

CSS的transform属性有一项奇怪的特性,就是它们对于周围的元素不会产生影响。换句话说,如果将一个元素旋转成45°角,它实际上是重叠在元素的上方、下方或者旁边。例如,当你使用transform的scale功能放大某个元素时,浏览器会放大该元素但是不会移动周围的内容,会导致网页有些部位发生重叠。以下是transform属性的几种功能:

(1)rotate(旋转)功能:transform属性的rotate功能很容易理解:给它提供一个0~360之间的度数值,数字后面要带deg。正值代表顺时针旋转,负值代表逆时针旋转。

(2)scale(缩放)功能:调整元素的尺寸,让它变得更大或更小。

例如,为了使一个元素放大两倍,可以添加以下声明:

transform:scale(2);括号中提供的数字就是缩放的倍率。它要乘以元素的当前尺寸。scale最常见的用法就是让网页上的一个元素动态地发生视觉上的变化。例如,当鼠标移过一个按钮时,使该按钮突然变大。这种效果利用:hover状态可以实现。例如,假设网页上有一个链接应用了 .button类,可以创建一个简单的样式对按钮格式化“

. button {

font:9em Arial , Helvetica , sans-serif;

border-radius:.5em;

background-color:rgb(34,255,23);

border:1px  solid  rgba(0,0,0, .5);

padding:.5em;

}

为了着重强调这个按钮,可以使它在访问者的鼠标经过时稍微变大,像这样:

. button:hover {

-webkit-transform:scale(1.2);

-moz-transform:scale(1.2);

-o-transform:scale(1.2);

-ms-transform:scale(1.2);

transform:scale(1.2);

}

使用水平和垂直缩放,括号中要提供两个值,用逗号隔开。

CSS3还为水平缩放和垂直缩放提供了功能:scaleX沿着X轴缩放,scaleY沿着Y轴缩放。

(3)translate属性:

translate函数只是将一个元素从它现有的位置向左或向右以及向上或下移动一定的距离。translate函数有两个值:一个指定水平距离,负值向左,正值向右。另一个指定垂直距离,负值向上,正值向下。

(4)skew(倾斜);将元素倾斜时将它沿着X轴或Y轴倾斜:这样可以让元素产生一种三维效果。

多个transform函数共用:transform函数功能可以一起使用,在每个功能之间添加空格就好。例如,要将一个元素旋转45°并放大正常尺寸的两倍。可以这样编写代码:

transform:rotate(45deg) scale(2);

(5)origin:transform-origin属性可以改变元素的变换点。

2.transition是指在一定的时间之内,一组CSS属性变换到另一组属性的动画展示过程。为了使

(1)两个样式:一个样式代表该元素最初的样子,另一个样式代表最终的样子。Web浏览器将负责以动画形式展示这两个样式之间的变化过程。

(2)transition属性:CSS3增加了transition属性,这正是使动画成为可能的秘诀的所在。一般来说,是将transition属性应用到最初的样式中,定义动画开始之前的元素的外观样式。

(3)触发器:是指促使这两个样式发生变化的执行动作。可以用几个伪类来触发动画。其中最常用的是伪类:hover。

如何添加transition?

假设在链接中应用一个类.navButton,然后创建两个样式,像下面这样:

.navButton {

background-color:orange;

}

.navButton:hover{

background-color:blue;

}

这些样式在任何浏览器中都有效,当鼠标悬停在导航按钮上时,将会使它的背景色由橙色变成蓝色。但是,这种变化是瞬间的,为了使下面这个变化能持续1秒,必须在.navButton中添加两个新的属性,像下面这样:

.navButton {

background-color:orange;

transition-property:background-color;

transition-duration:1s;

}

.navButton {

background-color:blue;

}

第一个属性是transition-property,它定义了要以动画的形式展示哪些属性。或者用关键字all或者利用一个以逗号隔开的属性清单来指定多个属性。例如:假设创建一个:hover样式,文本颜色、背景色以及边框的颜色都会发生变化。你可以全部列出这3种属性,像这样:transition-property:color,background-color,border-color;或者为了简单起见,可以使用关键字all,像这样:transition-property:all。甚至可以针对每一个要以动画形式展示的属性分别定义时限。例如,当访问者的鼠标经过一个按钮时,想让文本颜色迅速发生变化,背景色则变化的稍微缓慢一些,边框色则变化的更缓慢一些。为了实现这些效果,需要利用transition-property列出要以动画形式展示的属性,然后利用transition-duration列出各个属性需要的时间,代码如下:

transition-property:color,background-color,border-color;

transition-duration:.25s,.75s,.2s;

这里的时间排列顺序必须与对应属性顺序一致。

可以使用transition-timing-function属性控制动画的速度。属性值可以为以下关键字之一:ease、ease-in、ease-out、ease-in-out和linear。ease会使动画一开始很慢中间逐渐加快,最后又逐渐减速。linear则是使整个动画过程平稳地发生变化。

transition-delay属性阻止transition立即开始展示动画。例如,如果想让动画延迟半秒钟才开始,可以添加以下代码:transition-delay:.5s。

3.animation:使用transition时,只能从一组属性变化到另一组属性,而使用animation则可以让一组属性转变到另一组属性,再转变到另一组属性。也可以让某一个动画重复,或者在有访问者的鼠标经过它时暂停,甚至让动画结束后立即自动返回。animation比transition更复杂一些,但是它不需要触发。

创建动画有两个步骤:

(1)定义动画:创建关键帧。

(2)将动画应用到元素上。

第一步:定义关键帧。其语法可能看起来显得有些怪异,以下是它的基本结构:

@keyframes  animationName  {

from  {

/* list  CSS  properties  here */

}

to  {

/* list  CSS  properties  here */

}

}

它以@keyframes开头,紧接着是动画的名称。然后添加至少两个关键帧。在本例中,关键字from和to用来创建起始关键帧和结束关键帧。每个关键帧中可以添加一个或者多个CSS属性。例如,想要创建一个动画,让一个元素淡入视图,就可以让opacity值先为0,再以1结束:

@keyframes  fadeIn{

from{

opacity:0;

}

to  {

opacity:1;

}

}

animation的一大缺点就是需要特定的供应商前缀。

4.假设想让一个带有重要通告的div在载入网页中淡入视图。这个div有一个类命名为announcement:<div  class=“announcement”>。

首先,用@keyframes规则创建淡入动画:

@keyframes  fadeIn {

from  {  opacity:0;}

to  {  opacity:1;}

}

然后将动画应用给<div>标签的样式:

. announcement  {

animation-name:fadeIn;

animation-duration:1s;

}

animation-那么属性告诉浏览器要使用哪一个动画。这个名字就是第一步创建的名字。

如何给animation定时?使用animation-duration属性可以控制动画的时长。

animation-iteration-count属性可以让动画运行一次、两次、甚至无限制。值可以是准确值(数字代表次数),也可以是关键字infinite(代表无限制)。

animation-direction:alternate可以让动画奇数次超前运行,偶数次后退运行。

animation-fill-mode:forwards告诉浏览器将动画保持为结束时的样子。

animation-play-state属性可以控制动画的播放。它只接受两个关键字:running和paused想要暂停某一个动画只要在样式中添加以下声明即可:animation-play-state:paused。

CSS3秘笈:第十章的更多相关文章

  1. CSS3秘笈复习:第九章&第十章

    第九章 1.和链接有关的伪类: (1):link,未访问过的链接 (2):visited,已访问过的链接 (3):hover,鼠标悬停链接 (4):active,单击链接时 这四种方式一定要严格按上面 ...

  2. CSS3秘笈第三版涵盖HTML5学习笔记13~17章

    第13章,构建基于浮动的布局 使用的是float(浮动)属性 注:float:none值将取消所有浮动,通常只用来取消元素中已经应用的浮动. 切记:不需要给正文的div设计宽度,即使设计成固定宽度也不 ...

  3. CSS3秘笈第三版涵盖HTML5学习笔记9~12章

    第9章,装饰网站导航 限制访问,处于隐私方面考虑,浏览器已经开始限制可以对伪类:visited应用哪些CSS属性了.其中包括对已访问过的链接定义color.background-color.borde ...

  4. CSS3秘笈第三版涵盖HTML5学习笔记6~8章

    第二部分----CSS实用技术 第6章,文本格式化 指定备用字体: font-family:Arial,Helvetica,sans-serif; 当访问者没有安装第一种字体时,浏览器会在列表中继续往 ...

  5. CSS3秘笈第三版涵盖HTML5学习笔记1~5章

    第一部分----CSS基础知识 第1章,CSS需要的HTML HTML越简单,对搜索引擎越友好 div是块级元素,span是行内元素 <section>标签包含一组相关的内容,就像一本书中 ...

  6. CSS3秘笈:第八章

    给网页添加图片 1. 常用来处理图片的CSS属性: (1)     border(边框):给图片添加边框. (2)     padding(填充):边框和图片之间填充空间. (3)     float ...

  7. 《CSS3秘笈》备忘录

    第一部分 1.  类名称区分大小写:.special和.SPECIAL不一样 2.  :focus 是通过单击或跳格集中在某个地方 3.  ::selection 没有单冒号,被选中的文本[ 但是在I ...

  8. CSS3秘笈复习:十三章&十四章&十五章&十六章&十七章

    第十三章 1.在使用浮动时,源代码的顺序非常重要.浮动元素的HTML必须处在要包围它的元素的HTML之前. 2.清楚浮动: (1).在外围div的底部添加一个清除元素:clear属性可以防止元素包围浮 ...

  9. CSS3秘笈复习:第十一章

    1.text-align与vertical-align: text-align控制水平方向的定位,关键字是left.right.center和justify. vertical-align控制垂直方向 ...

随机推荐

  1. meta小解

    meta是html中的一个辅助标签,位于<head>与<title>之间,它能提供用户不可见的信息,数据结构为键值对 meta标签格式<meta http-equiv/n ...

  2. 在Linux中让文本显示带颜色的字。

    在linux中让echo命令显示带颜色的字需要使用参数-e 格式:echo -e "\33[字体背景颜色:文字颜色m字符转\033[0m" 注: 1.字体背景颜色和文字颜色之间是英 ...

  3. 总结一下js的原型和原型链

    最近学习了js的面向对象编程,原型和原型链这块是个难点,理解的不是很透彻,这里搜集了一些这方面的资料,以备复习所用 一. 原型与构造函数 Js所有的函数都有一个prototype属性,这个属性引用了一 ...

  4. Installation LEK Cluster

    The structure of cluster like this: We used four VM: A  10.32.xxx.213   ubuntu12.04 B  10.32.xxx.214 ...

  5. 关于用PS改变图像颜色

    由于写的一个页面主色调变了,里面的一些图标颜色也要相应改变,自己难得重新去psd里面截图,就想着用ps,看能否直接能变换一下图标颜色.其实方法也很简单的. 1:用ps打开需要改变图标颜色的文件,然后选 ...

  6. 基于HTML5 的WebSql本地设备数据库

    HTML5 的 Web SQL Database 用本地和会话存储实现简单的对象持久化,对繁琐的关系数据进行处理. 在 W3C 的 Web SQL Database 规范中(参照 介绍)有这样的描述: ...

  7. Asp.net MVC 单元测试 简要笔记

    首先要啰嗦几句. 单元测试是TDD的重要实践方法,也是代码质量的一种保证手段.在项目的工程化开发中,研发人员应该尽量保证书写Unit Test,即使不使用TDD. (VS中,我们可以直接使用微软提供的 ...

  8. git 第一次 push 遇到问题

    开始用 git 的时候我只会 git clone git pull git push 这三个命令满足了我的基本需求,到自己创建仓库的时候遇到了问题, git remote add origin htt ...

  9. 使用php创建WebSocket服务

    执行方法:首先先修改server.php与index.html的ip通过命令行执行 [php路径]php.exe "[文件路径]server.php"然后通过浏览器打开index. ...

  10. 编写高质量iOS代码的52个有效方法2-1

    一.变量的定义位置(用{}声明示例变量或者用@property属性声明实例变量) 1.用{}声明示例变量: 此方法生命的实例变量,编译器在编译时,会自动计算其偏移量(表示该变量距离存放对象的内存区域的 ...