CSS3之过渡及2D变换

transition过渡

transition-duration:; 运动时间
transition-delay:; 延迟时间
transition-timing-function:; 运动形式
          ease 逐渐变慢 (默认)
          linear 匀速
          ease-in 加速
          ease-out 减速
          ease-in-out 先加速后减速
          cubic-bezier 贝塞尔曲线(x1,y1,x2,y2) 通过控制曲线走势来改变运动效果

注:多样式同时进行过渡(需要异步过渡 则需在完成时间后再加一个参数:延迟时间)

例:transition:1s width,2s 1s height,3s 3s background;

transitionend事件(transition结束后触发的事件)
注意:1.每改变元素一个样式 会触发一次tranasitionend

在webkit内核中写法:
obj.addEventListener(‘WebkitTransitionEnd‘,fn,false);
在标准下写法:
obj.addEventListener(‘transitionend‘,fn,false);

-transform:; 变换
rotate(30deg) 旋转 围绕元素中心点旋转30度
skewX(45deg) 斜切 沿X轴向左拉伸45度
skewY(45deg) 斜切 沿Y轴向上拉伸45度
综合写法 skew(45deg,45deg)
scaleX(2) 缩放 由中心点沿X轴向外扩展2倍
scaleY(0.5) 缩放 由中心点沿Y轴向内收缩2倍
综合写法 scale(2,0.5) 
translateX(100px) 位移 从左往右移动100px
translateY(-100px) 位移 从下往上移动100px
综合写法 translate(100px,-100px)

注:transform 执行顺序 -- 后写先执行!

例:-webkit-transform:translateX(100px) scale(0.5); 与 -webkit-transform:scale(0.5) translateX(100px);

  第一条样式先缩放0.5倍 再执行位移100px
  第二条样式先执行平移100px 再缩放0.5倍 这时100px会随着缩放被缩放成50px

-transform-origin:; 变换基点
其值可为像素也可为关键字

-transform:matrix(); 矩阵
旋转 位移 缩放 斜切 都是通过matrix封装实现

matrix(1,0,0,1,0,0) 标准下 默认6个参数
(

matrix(a,b,c,d,e,f);

缩放
a,c,e表示X轴缩放 X轴缩放:a:a*缩放倍数 c:c*缩放倍数 e:e*缩放倍数 (e/c默认为0);
b,d,f表示Y轴缩放 Y轴缩放:b:b*缩放倍数 d:d*缩放倍数 f:f*缩放倍数 (f/d默认为0);

斜切
c同时表示X轴斜切 c=Math.tan(Deg/180*Math*PI) 
b同时表示Y轴斜切 b=Math.tan(Deg/180*Math*PI)

位移
e:X轴的位移 位移的长度e+x;(e,f默认值为0)
f:Y轴的位移 位移的长度f+y;

旋转
a/b/c/d共同控制旋转 
a = Math.cos(deg/180*Math*PI)
b = Math.sin(deg/180*Math*PI)
c = -Math.sin(deg/180*Math*PI)
d = Math.cos(deg/180*Math*PI)
)
兼容IE6及以上 缺少位移2个参数
progid:DXImageTransform.Microsoft.Matrix( M11= 1, M12= 0, M21= 0 , M22=1,SizingMethod=‘auto expand‘);
Matrix( M11= a, M12= c, M21= b , M22=d,SizingMethod=‘auto expand‘);
(

注意 IE下旋转不是围绕元素中心点旋转
解决方案:控制元素left/top;
left = (父级offsetWidth-本身offsetWidth)/2
top = (父级offsetHeight-本身offsetHeight)/2
)

转载自 :http://www.cnblogs.com/dreamerC/p/6224443.html

时间: 2024-10-24 23:16:47

CSS3之过渡及2D变换的相关文章

css3 过渡和2d变换——回顾

1.transition 语法:transition: property duration timing-function delay; transition-property 设置过渡效果的css 属性名称 语法: transition-property: none | all | property none 没有属性会获得过度效果 all 所有属性都将获得过度效果. property 定义应用过度效果css 属性名称列表,列表以逗号分割. indent 元素属性名称 transition-d

牛逼的css3:动态过渡与图形变换

写css3的属性的时候,最好加上浏览器内核标识,进行兼容. -ms-transform:scale(2,4); /* IE 9 */ -moz-transform:scale(2,4); /* Firefox */ -webkit-transform:scale(2,4); /* Safari and Chrome */ -o-transform:scale(2,4); /* Opera */ 1.圆角(常用:略) 2.边框阴影 box-shadow 属性向框添加一个或多个阴影. box-sha

CSS3之过渡Transition

CSS3中的过渡Transition有四个中心属性:transition-property.transition-duration.transition-delay和transition-timing 1.transition-property的语法[css] transition-property :all(所有属性改变) || [attr] (指定要运动的样式)|| none(没有属性改变) 2.transition-property的属性值 (1)none:transition马上停止执行

css3的3D和2D

css3的3D旋转:rorateX():参数为正值时,盒子是围绕x轴,完成从Y轴正方向到Y轴负方向的旋转,视觉上呈现高度上的变化.rorateY():参数为正值时,盒子是围绕Y轴,完成从X轴正方向到X轴负方向的旋转,视觉上呈现盒子宽度上的变化.css2D旋转:translate(a,b):a,b,均大于0时,a表示是在水平方向的位移(从左向右),b是垂直方向的位移(从上往下),rotate(a):a>0,在水平面上顺时针旋转的度数,a<0时,在水平面上逆时针旋转度数.scale(x,y):x是

CSS3平滑过渡transition

<!DOCTYPE html><head><meta charset="utf-8" /><title>CSS3平滑过渡transition</title><meta name="description" content="" /><meta name="keywords" content="" /><script s

css3学习笔记之2D转换

translate() 方法 translate()方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <!DOCTYPE html> <html> <head> <style>  div { width:100px; height:75px; background-color:red; border:1px

高大上网站-CSS3总结1-图片2D处理以及BUG修复

高大上网站-CSS3总结1-图片2D处理以及BUG修复 一,前言: 现在的前端UI相对JS来说,重视并不够. 但是CSS3提供的新特性,将现在的网站赤裸裸的划分为两类:一类还在写着老旧样式,或者通过bootstrap来蹭点CSS3动画.另一类,是用CSS3写着各种特效的网站. 也许国内还感觉不是很明显.但是在国外的网站真的很明显能看出来这些.也许很多时候,国内大部分公司都不愿意将时间和精力放在这上面.另外,愿意这样写的前端工程师也偏少.(你能指望一个实习生写这个?) 但是,这里我要说但是了. 一

CSS3(2)--- 过渡(transition)

CSS3(2)--- 过渡(transition) 一.概念 1.什么是过渡 通俗理解 是从一个状态 渐渐的过渡到 另外一个状态. 比如一个盒子原先宽度为100px,当鼠标点击时盒子的宽度变成200px,如果直接从100px变化到200px.从视觉上看去并不友好.我们更喜欢看到的是平滑的过渡. 2.浮动的语法 属性语法格式 transition: 要过渡的属性 花费时间 运动曲线 何时开始; // 如果有多组属性变化,还是用逗号隔开.前两个属性必须写.后两个可以不写.运动曲线默认匀速.开始时间默

css3 2D变换

css3中, 最常用的2D静态变换有一下5种,他们都包含在transform方法中 * translate() * rotate() * scale() * skew() * matrix() 下面来逐一介绍  translate()方法 通过translate()方法,元素从当前位置发根据传如入的2个参数(x坐标,y坐标)发生位移. 例如:transform(50px,100px)     //元素向左偏移50px,向下偏移100px rotate()方法 通过rotate()方法,元素顺时针