css3动画1 transform 详解(共含有transform transition animate)

                            Transform学习

2D转换

    图形变换我们能看到的要么是2D的平面变换,还有就是3D的立体变换,当我们看到这些词的时候,“平移”,“旋转”,“拉伸” 这种都是输入2D变换的范畴,转换导致的结构那就是,位置,形状,尺寸等等的改变。

transform 英文意思“变形” 好像变形金刚也是这个单词我也记不清了,反正transform 就是表述了刚才做说那种2d的转换的几种情况。transform 被 safari chrome firefox ie10 支持,如果在ie下使用需要加上前缀-ms-

 

translate

    这种通常被称为平移就是沿着X Y 坐标,对图形进行移动,一种非常常用的转换

   

.tf_translate{
		transform:translate(500px,500px);
}

   使用了这个css 那么就是把图像平移到X坐标500px Y左边500px 处

 

 

rotate

   旋转,图像是以图形的中心为轴的旋转,这个一定要清楚,如果想以指定坐标做旋转的话需要其他做法,

这种旋转是顺时针旋转,可是使用负数,就是逆时针旋转,数值后边请加上deg 这个单位不然是不会正确执行的

 

.tf_rotate{
		transform:rotate(100deg);
}

 

 

scale

   拉伸 沿着X Y 进行拉伸,scale(x,y)两个参数,当然也可以使用scaleX scaleY 进行单独拉伸。

 

.tf_scale{
		transform:scale(1.5,1.5);
	}

 

 

skew

   歪斜,这个可能用到的不多,也是两个参数沿着X Y 轴的歪斜 skew(x,y),注意需要加deg 后缀

 

.tf_skew{
		transform:skew(20deg,20deg);
	}

 

*origin*

 

      这个效果重点介绍一下,上边讲过rotate 选择只有一个参数代表旋转的角度,只要选择肯定会引申出一个概念就是以什么为圆心选择,在css 和div中是没有其他图形的概念,只有矩形概念所有的块级,行内级都是一个个小小的矩形,这里会有网友疑问,他可以绘制出圆形,或者椭圆,那是你使用了css一些特殊属性,而不是我们使用svg或者canvas 就有标准的图形输出,那么rotate 所有的旋转都是按照这个矩形块的圆心进行旋转。

       这就肯定引发一个问题,相当一部分时候我们不是让图形按照中心旋转,例如指定坐标,或者左上角等等,我不知道为什么css3 的transform中设计有origin 这个单独处理图形旋转的接口,如果你大量使用过svg矢量绘图,你会发现transform 中也有rotate 的概念,而且他多了两个参数rotate(deg,x,y),后两个就是指定图形旋转圆心点,下边用图形说明一下origin 的用法

 

 

 

这里重点介绍一下图形1 ,下边原理都是相同,图形是左上顶点标记为0,0,右下点标记为100% 100%,所以这个跟SVG rotate 的用法稍微不同,按照这种规律,你很容易就能找到一个矩形关键的九个点,分别是

(top middle bottom)(left center right)去标 x y 对应的9个点就是

left top (0,0)

center top(50%,0)

right top(100%,0)

right middle(100%,50%)

right bottom(100%,100%)

center bottom(50%,100%)

left bottom(0,100%)

left middle(0,50%)

center middle(50%,50%)

 

 

 

 

 

 

 

 

     这里有个要注意的,origin 是一定要配合rotate 使用的,不然你只是指定了选择的圆心但是并没有让图形旋转肯定是看不到结果的,

所以这个地方我感觉CSS3 的图形没有svg 设计的更合理,svg 只需要一个接口rotate 就可以指定三个参数实现这个复杂的图形运动。

 

.tf_origin{
		transform-origin:20% 40%;
		transform:rotate(100deg)
	}

 

 

matrix

    这个是上述所有2d变换的汇总,matrix 有六个参数,分别控制平移,歪斜,旋转的所有属性。

.tf_matrix{
		transform:matrix(0.866,0.5,-0.5,0.866,0,0);
	}

 上边介绍了所有的2D变换情况,你可以吧这些css应用到你的图像上,会按照你设定值进行图形转换,但是只能看到图形准换的结果。

 

所有2d转换的方法
matrix(n,n,n,n,n,n)定义 2D 转换,使用六个值的矩阵。
translate(x,y)定义 2D 转换,沿着 X 和 Y 轴移动元素。
translateX(n)定义 2D 转换,沿着 X 轴移动元素。
translateY(n)定义 2D 转换,沿着 Y 轴移动元素。
scale(x,y)定义 2D 缩放转换,改变元素的宽度和高度。
scaleX(n)定义 2D 缩放转换,改变元素的宽度。
scaleY(n)定义 2D 缩放转换,改变元素的高度。
rotate(angle)定义 2D 旋转,在参数中规定角度。
skew(x-angle,y-angle)定义 2D 倾斜转换,沿着 X 和 Y 轴。
skewX(angle)定义 2D 倾斜转换,沿着 X 轴。
skewY(angle)定义 2D 倾斜转换,沿着 Y 轴。
  

 

3D变换介绍

css 支持图形以3D的形式进行变换,下边介绍3d变换中用到的方法

rotateX rotateY rotateZ

在2D 变换中rotate() 这种直接加参数的方式是2d中沿着中心进行选择,3D中故名就是按照XYZ轴进行相应的变换,所以你可以看到肯对不可思议的效果。

 

以上所有的介绍都是图形变形,跟我们在网页上看到的很多效果不同,因为他们使用了很重要的一个属性就是css3中的过渡效果

下一篇介绍过过渡Transition

 

 

 SVG 对比

 

 以为过去做过一段时间SVG 开发本身SVG 拿出来跟canvas 作对比是比较合适但是CSS3中也有这些概念,所以以下每一篇文章都会拿css3 跟SVG 做一下简单对比,因为时间长不用SVG 其中有些东西可能记得不是特别清楚,如果有错误请指正,

上边所说的所有的图形变换的接口SVG 中都有除了origin 这个,SVG中是跟rotate 合并使用.

1:rotate 的用法不一样具体不一样的地方上边已经介绍过,

2:SVG 没有3D概念

3:css3中3D的图形变换接口更丰富,多出了rotateX ,rotateY ,rotateZ 等接口

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
百度知道搜索结果的变形金刚JS特效,浏览器必须在IE8 或者Firefox、Chrome内核才能见到效果。 今日,备受关注的《变形金刚3》在中国首映了,大部分使用百度知道产品的人都会发现在百度知道检索“变形金刚”或“变形金刚3”,搜索结果会呈现一个动态代码版变形金刚。据了解,该创意由百度一位“刚粉”工程师用整整1天时间独立完成。 用户只要在百度知道检索“变形金刚”或“变形金刚3”,搜索结果中原本的文字链接就会组合成一个变形金刚出现在页面的右边,并且该“变形金刚”还会动态走向页面中间,伴随其脚步的停止,页面也会随之震动。 大量网友被这种新鲜的恶搞形式所吸引,纷纷前往围观。百度知道“变形”这一新鲜创意,也进一步激发起“刚粉”的观影热情。 由“刚粉”百度工程师一天研发而成 “百度知道变现”由百度一位“刚粉”工程师独立完成,他利用自己的周末业余时间,用整整1天时间完成开发这个代码版“变形金刚”产品。 生于1978年、从事Web前端研发的黄方荣是典型的“变形金刚”粉丝。他说,“变形金刚”承载了他很多难忘的童年记忆。在《变形金刚3》上映之际,“做一个酷的东西,献给自己,献给儿子,也献给那些同为‘刚粉’的朋友们”成为黄方荣近期闲暇之余想得最多的问题。 做个什么样的产品才能让所有人眼前一亮?擅长JavaScript开发的黄方荣突发奇想:不如用JavaScript代码写一段代码,让搜索结果化身为“变形金刚”!他计划首先将变形金刚的动作进行分解,再将饱满的动作形象转化成可以在技术上控制的点阵,最后用JavaScript代码来实现。 想起来简单,实际却很费神。整个开发,黄方荣手绘了40多张草图,描了不计其数的点阵,这保障了最终变形金刚变身的时候,动态效果更加逼真。而在代码实现之后,更麻烦的调试过程开始了,他需要不断调整点阵和代码,让恰当的字符在恰当的时间出现在恰当的位置上。整整忙碌了一天,黄方荣终于完美实现了自己的创意。 创意获百度副总裁亲口赞赏 仅三天上线 用技术改变这个世界、改变亿万人的生活,这是每一位百度工程师的梦想。黄方荣自然个人也相信:在日常繁杂的工作中,每一个新的想法,对产品的改进,都可能产生“蝴蝶效应”,影响数亿人的体验。 7月18日,黄方荣上班就在百度hi群里把自己周末的成果分享给了技术部门的同事,负责技术的百度副总裁王梦秋立即回复了一句话:“创意很酷,上线实现吧”。 三天之后,黄方荣完成了机器人呈现效果的优化,百度知道将这一创意上线的一刻,黄方荣兴奋不已,深深体会到了百度“简单可依赖”的文化。 一些网友用“太炫”、“太意外”、“太激动”等词汇表达惊奇感受。还有“刚粉”表示:“没想到在网页上,用编程可以让搜索结果组成变形金刚,会走动、会跺脚。最神奇的是连带着屏幕都能一起震动,非常好玩。”

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值