您现在的位置是:网站首页> 编程资料编程资料
深入CSS3 动画效果的总结详解简要总结CSS编程中的响应式设计CSS的一些编程规范总结10个必备的CSS技巧总结CSS清除浮动方法总结css 调试方法与经验总结CSS多浏览器兼容总结(个人经验)CSS样式的基础学习总结IE下css常见问题总结及解决CSS(Cascading Style Sheet)级联样式表常用术语总结CSS学习总结
2021-09-07
999人已围观
简介 本篇文章是对,CSS3中的动画效果进行了详细的分析介绍。需要的朋友参考下
CSS3添加了几个动画效果的属性,通过设置这些属性,可以做出一些简单的动画效果而不需要再去借助JavaScript。CSS3动画的属性主要分为三类:transform、transition以及animation。
rotate
设置元素顺时针旋转的角度,用法是:
transform: rotate(x);
参数x必须是以deg结尾的角度数或0,可为负数表示反向。
scale
设置元素放大或缩小的倍数,用法包括:
transform: scale(a); 元素x和y方向均缩放a倍
transform: scale(a, b); 元素x方向缩放a倍,y方向缩放b倍
transform: scaleX(a); 元素x方向缩放a倍,y方向不变
transform: scaleY(b); 元素y方向缩放b倍,x方向不变
translate
设置元素的位移,用法为:
transform: translate(a, b); 元素x方向位移a,y方向位移b
transform: translateX(a); 元素x方向位移a,y方向不变
transform: translateY(b); 元素y方向位移b,x方向不变
skew
设置元素倾斜的角度,用法包括:
transform: skew(a, b); 元素x方向逆时针倾斜角度a,y方向顺时针倾斜角度b
transform: skewX(a); 元素x方向逆时针倾斜角度a,y方向不变
transform: skewY(b); 元素y方向顺时针倾斜角度b,想方向不变
以上的参数均必须是以deg结尾的角度数或0,可为负数表示反向。
matrix
设置元素的变形矩阵,因为矩阵变形过于复杂,暂略。
origin
设置元素的悬挂点,用法包括:
transform-origin: a b; 元素的悬挂点为(a, b)
元素的悬挂点即为它旋转和倾斜时的中心点。取值中的a、b可以是长度值、以%结尾的百分比或者left、top、right、bottom四个值。
transition-property
指定transition效果作用的CSS属性,其值是CSS属性名。
transition-duration
动画效果持续的时间,其值为以s结尾的秒数。
transition-timing-function
指定元素状态的变化速率函数,其取值基于贝赛尔曲线函数,详情如下所示:
transition-delay
动画效果推迟开始执行的时间,其值为以s结尾的秒数。
CSS3动画的生命周期如下图所示,从中可以清楚的看出duration和delay之间的关系:
CSS3中真正的动画属性是animation,而前面的transform和transition都只是对DOM元素的变形或者是状态的过渡。实际上,CSS3所支持的动画效果只是填充动画,也就是说先设定整个动画生命周期中的几个关键状态(key frame,关键帧),然后动画将自行计算并模拟关键帧之间的过渡。那么在设置animation的属性之前就必须先设定好关键帧了。
关键帧@keyframes的语法结构如下:
@keyframesNAME {
a% {
/*CSS属性*/
}
b% {
/*CSS属性*/
}
...
}
NAME表示动画的名字;a%、b%表示以百分号结尾的百分数,用于设定该关键帧在动画生命周期中的位置;百分数后面的{ } 中则需要写成该关键帧状态下CSS属性的值。另外,如果同一个百分数值在@keyframes中出现多次,那么后出现的将覆盖先出现的;并且关键帧在@keyframes中时无序的。
设置完关键帧后就可以继续设定animation了。
animation-name
指定选用的动画的名字,即keyframes中的NAME。
animation-duration
同transition-duration。
animation-timing-function
同transition-timing-function。
animation-delay
同transition-delay。
animation-iteration-count
设定动画执行的次数,其值可以是数字也可以是infinite(循环执行)。
animation-direction
设定动画执行的方向,其值可以是normal(正常顺序播放)或alternate(反向播放)。
因为CSS3还没有正式发布,所以各种浏览器对它的支持也不尽相同。所以在设置CSS3属性(包括@开头的新属性)的时候通常需要对其添加浏览器标识的前缀,如-webkit- 表示Webkit内核的浏览器Chrome和Safari,-moz- 表示Fire Fox,-o- 表示Opera。无视IE吧,在IE上的实现通常还是要用到滤镜,而不是CSS3。
实例下面的代码模拟了上述大部分的CSS3动画属性,由于只使用了–webkit- 前缀,所以只能在Chrome或Safari下正常运行。
HTML代码:
CSS代码:
animation.css
div {
width: 80px;
height: 30px;
line-height: 30px;
text-align: center;
background: #06F;
color: #fff;
font-family: Arial, Helvetica, sans-serif;
-webkit-border-radius: 10px;
margin: 5px;
}
.rotate {
-webkit-transform: rotate(0deg);
}
.rotate:hover {
-webkit-transform: rotate(90deg);
}
.scale {
-webkit-transform: scale(1);
}
.scale:hover {
-webkit-transform: scale(1.5);
}
.translate {
-webkit-transform: translate(0px, 0px);
}
.translate:hover {
-webkit-transform: translate(50px, 50px);
}
.skew {
-webkit-transform: skew(0);
}
.skew:hover {
-webkit-transform: skewY(20deg);
}
.origin {
-webkit-transform-origin: top left;
-webkit-transform: rotate(0);
}
.origin:hover {
-webkit-transform: rotate(45deg);
}
.single {
width: 150px;
}
.single:hover {
background: #f00;
width: 200px;
height: 100px;
line-height: 100px;
-webkit-transition-property: background;
-webkit-transition-duration: 2s;
}
.whole {
width: 150px;
}
.whole:hover {
width: 200px;
height: 100px;
line-height: 100px;
background: #f00;
-webkit-transition-duration: 2s;
}
.resume {
width: 150px;
-webkit-transition-duration: 2s;
}
.resume:hover {
width: 200px;
height: 100px;
line-height: 100px;
background: #f00;
-webkit-transition-duration: 2s;
}
.animation:hover {
-webkit-animation-name: anim;
-webkit-animation-duration: 2s;
-webkit-animation-timing-function: linear;
-webkit-animation-direction: alternate;
-webkit-animation-iteration-count: infinite;
}
@-webkit-keyframes anim {
0% {
width: 80px;
height: 30px;
line-height: 30px;
background: #06F;
}
50% {
width: 140px;
height: 65px;
line-height: 65px;
background: #360;
}
100% {
width: 200px;
height: 100px;
line-height: 100px;
background: #f00;
}
}
相关内容
- css让table不显示边框的代码在火狐和谷歌浏览器中无效Dreamweaver中怎么让html网页中的table边框细线显示?CSS样式简单实现Table没有外边框只有内边框一个属性border-collapse解决Table的边框问题CSS控制Table内外边框、颜色、大小示例HTML table表格边框的控制详细说明用CSS设置表格Table的细边框的比较好用的方法 用CSS样式描述表格Table边框网页表格边框的设置方法网页表格表框制作技巧Table显示你要显示的边框代码
- 左右两栏布局右侧自适应+左右拖动改变两栏宽度css实现元素居中的N种方法div水平布局两边对齐的三种实现方法waterfall瀑布流布局+动态渲染的实现页面中有间隔的方格布局如何完美实现方法css实现六种自适应两栏布局方式使用flex布局轻松实现页面布局的示例代码使用Flex布局实现头部固定内容区域滚动的方法详解flex布局下图片变形的解决方法详解flex布局与position:absolute/fixed的冲突问题Flex布局实现div内部子元素垂直居中的示例
- css实现背景渐变与底部固定的蓝天白云示例div footer标签css实现位于页面底部固定详解八种方法实现CSS页面底部固定
- HTML+CSS实现漂亮的背景实例设置div背景透明的方法示例CSS实现div不设高度完全居中div自适应高度自动填充剩余高度详解DIV+CSS的命名规矩才能有利于SEO优化的实现方法DIV或者DIV里面的图片水平与垂直居中的方法详解如何用div实现自制滚动条div对齐与网页布局详解DIV+CSS实现电台列表设计的示例代码div+css实现带箭头的面包屑导航栏不定宽高的文字在div中垂直居中实现方法
- HTML+CSS实现漂亮的查询部件实例设置div背景透明的方法示例CSS实现div不设高度完全居中div自适应高度自动填充剩余高度详解DIV+CSS的命名规矩才能有利于SEO优化的实现方法DIV或者DIV里面的图片水平与垂直居中的方法详解如何用div实现自制滚动条div对齐与网页布局详解DIV+CSS实现电台列表设计的示例代码div+css实现带箭头的面包屑导航栏不定宽高的文字在div中垂直居中实现方法
- 使用CSS去掉网页中超链接的下划线示例CSS3制作hover下划线动画CSS3简单带下划线跟随下拉菜单特效源码CSS3绘制有活力的链接下划线CSS中的下划线text-decoration属性使用进阶CSS3实现下划线跟随动画且背景色渐变菜单源码div css布局命名时尽量避免下划线不可思议的CSS导航栏下划线跟随效果
- 使用滤镜解决IE6下png图片不能透明(被渲染成默认色)的问题部分透明的蒙版效果实现思路(兼容ie6)纯CSS实现背景半透明文字不透明效果兼容IE6滤镜使用之图片透明的css写法背景透明文字不透明的最佳方法兼容IE(以背景黑色透明度0.5为例)格式png24透明底 多种解决png24格式图片在ie6中透明问题背景半透明效果CSS链接样式代码img 半透明 处理img加半透明背景实现思路及代码IE6下Png透明最佳解决方案DD_belatedPNG
- 仿网易nec首页动画效果(实现原理+代码)设置div背景透明的方法示例CSS实现div不设高度完全居中div自适应高度自动填充剩余高度详解DIV+CSS的命名规矩才能有利于SEO优化的实现方法DIV或者DIV里面的图片水平与垂直居中的方法详解如何用div实现自制滚动条div对齐与网页布局详解DIV+CSS实现电台列表设计的示例代码div+css实现带箭头的面包屑导航栏不定宽高的文字在div中垂直居中实现方法
- div+css背景渐变色代码示例css 进度条的文字根据进度渐变的示例代码css渐变色彩 省略标记 嵌入字体 文本阴影全面了解什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条css教程实现div背景色渐变色代码分享css实现随鼠标移动div渐变色效果CSS Tips:段落每行渐变色文本效果的实现方法
- html页面高度不固定在不同浏览器下的兼容性设置浅谈原生页面兼容IE9问题的解决方案新版chrome浏览器设置允许跨域的实现css hack之\9和\0就可能对hack IE11\IE9\IE8无效css区分ie8/ie9/ie10/ie11 chrome firefox的代码解决CSS浏览器兼容性问题的4种方案常见的浏览器兼容性问题(小结)border-radius IE8兼容处理的方法浅谈遇到的几个浏览器兼容性问题base64图片在各种浏览器的兼容性处理 对常见的css属性进行浏览器兼容性总结(推荐)