HTML5-CSS3-JavaScript(4)
CSS3中 变形与动画相关属性
CSS3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的功能。CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件呈现出更丰富的外观。
借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了Transition动画。Transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画的持续时间,就可保证HTML组件按指定规则播放动画。
比Transition动画功能更强大的是Animation动画,Animation动画同样可以与位移、旋转、缩放、倾斜4种几何变换结合,但它可以指定多个关键帧,从而允许定义功能更丰富的自定义动画。
1. CSS3提供的变形支持
CSS3提供的变形支持可以对HTML组件进行常见的几何变换,包括旋转、缩放、倾斜、位移4中变换,也可以使用变换矩阵进行变形。
CSS3为变形支持提供了如下两个属性值。
transform : 该属性用于设置变形。该属性支持一个或多个变形函数。CSS3提供了如下变形函数。
translate(tx [,ty]) : 该函数设置HTML组件横向上移动tx距离,纵向上移动ty距离。其中ty参数可以省略,如果省略ty参数,则ty默认为0,表明纵向上没有位移。
translateX(tx) , translateY(ty)
scale(sx, sy) : 该函数设置HTML组件横向上缩放比为sx,纵向上缩放比为sy。sy参数可以省略,如果省略该参数,sy默认等于sx,也就是保持横纵比缩放。
scaleX(sx) = scale(sx,1) , scaleY(sy) = scale(1,sy)
rotate(angle) : 该函数设置HTML组件顺时针转过angle角度。
skew(sx [, sy]) : 该函数设置HTML组件沿着X轴倾斜sx角度,沿着Y轴倾斜sy角度。其中sy参数可以省略,如果省略sy参数,则sy默认为0。
skewX(sx),skewY(sy)
matrix(m11,m12,m21,m22,dx,dy) : 这是一个基于矩阵变换的函数。其中前4个参数将组成变形矩阵;dx、dy将负责对坐标系统进行平移。
transform-origin : 该属性设置变形的中心点。该属性值应该指定为xCenter yCenter,其中xCenter、yCenter支持如下几种属性值。
left : 指定旋转中心点位于HTML组件的左边界。该属性值只能指定给xCenter。
top : 指定旋转中心点位于HTML组件的上边界。该属性值只能指定给yCenter。
right : 指定旋转中心点位于HTML组件的右边界。该属性值只能给xCenter。
bottom : 指定旋转中心点位于HTML组件的下边界。该属性值只能给yCenter。
center : 指定旋转中心点位于HTML组件的中间。如果将xCenter、yCenter都指定为center,则旋转中心点位于HTML元素的中心。
长度值 : 指定旋转中心点距离左边界、右边界的长度。
百分比 : 指定旋转中心点位于横向、纵向上的百分比位置。
例子:
-moz-transform:rotate(30deg);
-webkit-transform:rotate(30deg);
-o-transform:rotate(30deg);
2. CSS3提供的Transition动画
CSS3提供了Transition动画支持,Transition动画可以控制HTML组件的某个属性发生改变时会经历一段时间、以平滑渐变的方式发生改变,这就产生了动画效果。
Transition动画通过transition属性来指定。transition属性的值包括如下4个部分。
transition-property : 指定对HTML元素的哪个CSS属性进行平滑渐变处理。该属性可以指定background-color、width、height各种标准的CSS属性。 all指所有属性都执行transition动画处理。
transtion-duration : 指定属性平滑渐变的持续时间。
transtion-timing-function : 指定渐变的速度。该部分支持如下几个值。
ease : 动画开始时较慢,然后速度加快,到达最大速度后再减慢速度。
linear : 线性速度。动画开始时的速度到结束时的速度保持不变。
ease-in : 动画开始时速度较慢,然后速度加快。
ease-out : 动画开始时速度很快,然后速度减慢。
ease-in-out : 动画开始时速度较慢,然后速度加快,到达最大速度后再减慢速度。
cubic-bezier(x1,y1,x2,y2) : 通过贝济埃曲线来控制动画的速度。该属性值完全可以代替ease、linear、ease-in、ease-out、ease-in-out等属性值。
transition-delay : 指定延迟时间,也就是指定经过多长时间的延迟才会开始执行平滑渐变。
例子:
-moz-transition : background-color 4s linear;
-webkit-tansition : background-color 4s linear;
-o-transtion : background-color 4s linear;
3. CSS3提供的Animation动画
CSS3提供了强大的Tween动画支持 : Animation动画,这种动画允许开发者定义多个关键帧,浏览器将会负责计算,插入关键帧之间的虚拟动画帧。
CSS3为Animation动画提供了如下几个属性。
animation-name : 指定动画名称。该属性指定一个已有的关键帧定义。
animation-duration : 指定动画的持续时间。
animation-timing-function : 指定动画的变化速度。
animation-delay : 指定动画延迟多长时间才开始执行。
animation-iteration-count : 指定动画的循环执行次数。无限次循环 infinite
animation : 这是一个复合属性。该属性的格式为 : animation-name animation-duration animation-timing-function animation-delay animation-iteration-count,使用该属性可以同时指定animation-name、animation-duration、animation-timing-function、animation-delay和animation-iteration-count等属性。
需要指出的是,目前暂时只有Chrome、Safari浏览器支持该属性,而且使用该属性时还需要在该属性的前面添加-webkit-前缀。
上面属性中animation-name的属性值应该是一个关键帧定义,这个关键帧定义满足如下格式:
keyframes 关键帧名称 {
from | to | 百分比 {
属性1 : 属性值1;
属性2 : 属性值2;
属性3 : 属性值3;
...
}
...
}
上面语法格式中,from | to | 百分比用于定义关键帧的位置。其中from代表开始处;to代表动画结束帧;百分比则指定关键帧的出现位置。例如,10%代表关键帧出现在动画进行1/10时间处。一个关键帧定义可以包含多个关键帧。
例子 :
/* 定义一个关键帧 */
@-webkit-keyframes 'fisheye' {
/* 定义动画开始处的关键帧 */
0% {
-webkit-transform : scale(1);
background-color : #eee;
border-radius : 10px;
}
/* 定义动画进行40%时的关键帧 */
40% {
-webkit-transform : scale(1.5);
background-color : #bbb;
border-radius : 10px;
}
/* 定义动画进行100%时的关键帧 */
100% {
-webkit-transform : scale(1);
background-color : #eee;
border-radius : 10px;
}
}
div>a:hover {
/* 指定执行fisheye动画 */
-webkit-animation-name : 'fisheye';
/* 指定动画的执行时间 */
-webkit-animation-duration : 3s;
/* 指定动画的循环无限次 */
-webkit-animation-iteration-count : infinite;
}
HTML5-CSS3-JavaScript(4)的更多相关文章
- HTMl5/CSS3/Javascript 学习推荐资源
HTMl5/CSS3/Javascript 学习推荐资源 前端的定义应该是数据内容的展示,在国内大家都觉得前端只是HTML+CSS+Javascript,但是实际上与展示有关的都是前端,所以Ruby/ ...
- HTML5&CSS3&JavaScript&PHP&MySQL学习笔记
1.在文字间添加一条水平线 使用<hr /> 注意该符号不是成对出现的 2.<q> </q>用来标记于段落中的较短引用,浏览器会在它之间的语句两端加上双引号. ...
- 检测 HTML5\CSS3\JAVASCRIPT 在浏览器的适应情况
CSS3 Selectors Test : 这是CSS3.INFO网站提供的css选择器测试页面,它能够详细显示当前浏览器对所有CSS3选择器的支持情况.启动测试,浏览器会自动测验,并已列表的方式显示 ...
- HTML5 + CSS3 + JavaScript
http://www.programmer.com.cn/14761/#more-14761 文/李晶 随着互联网产业的爆炸式增长,与之伴生的Web前端技术也在历经洗礼和蜕变.尤其是近几年随着移动终端 ...
- html5+css3+javascript 自定义提示窗口
效果图: 源码: 1.demo.jsp <%@ page contentType="text/html;charset=UTF-8" language="java& ...
- html5+css3+javascript 自定义弹出窗口
效果图: 源码: 1.demo.jsp <%@ page contentType="text/html;charset=UTF-8" language="java& ...
- 《HTML5+CSS3+JavaScript 从入门到精通(标准版)》学习笔记(二)
这是一个应用的例子,学以致用嘛 <!--这些代码我就直接放在了博客园的"页首Html代码"中,用于自定义博客,效果就是页面左上角的白色文字--> <p> & ...
- 《HTML5+CSS3+JavaScript 从入门到精通(标准版)》学习笔记(一)
以下是以代码形式书写的笔记,本系列会持续更新,主要内容预计是类似下文的笔记,兼或一些思考与小项目,希望对你会有所帮助 1 <!-- --> <!DOCTYPE html>< ...
- 好程序员技术分享html5和JavaScript的区别
好程序员技术分享html5和JavaScript的区别,HTML5广义上讲是前端开发学科的代名词,包含HTML5.CSS3及JavaScript三个重要的部分,是运行在浏览器上应用的统称.如PC端网站 ...
- 用HTML5/CSS3/JS开发Android/IOS应用框架大全
现在人人都想成为安卓/IOS应用开发工程师.其实,安卓/IOS应用可以用很多种语言来实现.由于我们前端开发工程师,对HTML5/CSS/JavaScript的网络编程已经相当熟悉了.所以,今天大家将会 ...
随机推荐
- Win8交互UX——键盘交互
设计用户可以通过硬件键盘.屏幕键盘或触摸键盘交互的 Windows 应用商店应用. 本主题介绍键盘交互的设计注意事项.有关实现键盘交互的信息,请参阅响应键盘输入. 键盘交互 键盘输入是 Windows ...
- SQL Server2008安装后1433端口没监听问题
win2008系统安装完SQL Server2008后发现1433端口并没有监听,netstat -an并没有发现监听的1433端口,本机telnet localhost 1433也连不通,百度之后说 ...
- 【SpringCloud微服务实战学习系列】配置详解
前言 Spring Boot针对常用的开发场景提供了一系列自动化配置来减少原本复杂而又几乎很少改动的模板化配置内容. 一.配置文件 Spring Boot的默认配置文件位置为src/main.reso ...
- Android 自动化测试 robotium
转:http://xiaomaozi.blog.51cto.com/925779/908886 Android 的开发可以说已经遍地都是,不说精致的app,只要看些书,看点教学视频,学习二至三个月,都 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十:PS/2模块④ — 普通鼠标
实验十:PS/2模块④ - 普通鼠标 学习PS/2键盘以后,接下来就要学习 PS/2 鼠标.PS/2鼠标相较PS/2键盘,驱动难度稍微高了一点点,因为FPGA(从机)不仅仅是从PS/2鼠标哪里读取数据 ...
- EF---延迟加载技术
延迟加载: 优点:只在需要的时候加载数据,不需要预先计划,避免了各种复杂的外连接.索引.视图操作带来的低效率问题 使用方式:两步 第一:在需要延迟加载的属性前加上virtual ,该属性的类型可以是任 ...
- 编译安装Ruby 1.9.3 安装CentOS
1. 准备需要的安装的东西 yum -y install make gcc openssl-devel zlib-devel gcc gcc-c++ make autoconf readline-de ...
- 【BZOJ5094】硬盘检测 概率
[BZOJ5094]硬盘检测 Description 很久很久以前,小Q买了一个大小为n单元的硬盘,并往里随机写入了n个32位无符号整数.因为时间过去太久,硬盘上的容量字眼早已模糊不清,小Q也早已忘记 ...
- Android 使用MediaPlayer 播放 视频
http://pan.baidu.com/s/1lgKLS package cn.bgxt.surfaceviewdemo; import java.io.File; import android.m ...
- Unity3D笔记 NUGUI 一
NGUI是严格遵循KISS原则(KISS原则,keep it simple and stupid ,简单的理解这句话就是,要把一个系统做的连白痴都会用.这就是用户体验的高层境界了,好听的说法也是有的, ...