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应用到你的图像上,会按照你设定值进行图形转换,但是只能看到图形准换的结果。
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 等接口
相关推荐
**CSS 动画详解** CSS(层叠样式表)作为一种强大的网页设计工具,不仅可以用于静态布局,还能赋予网页动态效果,让用户体验更加丰富和生动。CSS 动画就是这一功能的具体体现,它允许开发者通过时间轴来控制元素的...
《jQuery与CSS3结合打造的文字动画插件详解》 在当今网页设计中,动态效果的运用已经成为提升用户体验的重要手段之一。jQuery作为一个强大的JavaScript库,它简化了DOM操作,事件处理,动画效果等任务,而CSS3则为...
《jQuery+CSS3数字滚动动画特效详解》 在网页设计中,动态效果的运用能够提升用户体验,增强视觉吸引力。"jQuery+CSS3数字滚动增加动画特效"就是一种常见且实用的技术,它使得数字的增加过程变得生动有趣,常用于...
**CSS3 SVG 3D立体阴影文字动画特效详解** 在现代网页设计中,动态效果和交互性已经成为提升用户体验的关键因素。CSS3与SVG(可缩放矢量图形)的结合,为实现这样的效果提供了强大的工具。本文将深入探讨如何利用...
《jQuery结合CSS3实现手机页面转换动画特效详解》 在当今移动互联网时代,手机网页的用户体验成为了设计者关注的重点。为了提升用户在浏览手机页面时的互动性和视觉效果,jQuery结合CSS3的页面转换动画技术应运而生...
《jQuery与CSS3结合实现的网页文字动画特效详解》 在网页设计中,动态效果能够提升用户体验,使得网站更具吸引力。jQuery 和 CSS3 是两种强大的技术,分别在JavaScript库和样式表领域占据重要地位。本篇文章将深入...
首先,CSS3弹动下拉菜单的核心在于运用了CSS3的过渡(Transition)、变换(Transform)以及动画(Animation)属性。这些特性赋予了元素动态变化的能力,让菜单在展开和收起时呈现出弹性效果。 1. 过渡(Transition...
**jQuery+CSS3环形旋转切换特效JS代码详解** 在网页设计中,吸引用户的注意力并提供独特的用户体验至关重要。"jQuery+CSS3环形旋转切换特效"是一种创新的展示方式,常用于产品展示、图片轮播或者功能介绍等场景。...
《jQuery与CSS3结合打造3D方块飘落动画特效详解》 在现代网页设计中,动态效果的运用能够极大地提升用户体验,使网页更具吸引力。本篇将详细讲解如何利用jQuery和CSS3技术,实现一个酷炫的3D方块飘落动画特效,帮助...
《CSS3文字上下滚动切换特效详解》 在网页设计中,动态效果的运用能极大地提升用户体验,其中文字滚动切换特效就是一个常见的元素。本篇文章将详细解析"css3文字上下滚动切换特效",并探讨如何利用jQuery和CSS3实现...
2. **自定义属性**:用户可以根据需要选择任何CSS3可动画化的属性进行过渡,如`transform`、`opacity`、`width`等。 3. **事件触发**:插件支持多种事件触发过渡,如点击、滚动、加载完成等,提供了丰富的API接口供...
《jQuery+CSS3相册图片叠加堆放展开动画特效详解》 在前端开发中,动态效果是提升用户体验的重要手段,而jQuery与CSS3的结合更是能创造出丰富多样的动画特效。本教程将深入解析一个名为“jQuery+css3相册图片叠加...
**jQuery+CSS3矩阵数字排列动画详解** 在网页设计中,动态效果往往能吸引用户的注意力,提高用户体验。"jQuery+CSS3矩阵数字排列自动查找动画特效"就是一种这样的设计手法,它结合了JavaScript库jQuery的强大功能和...
以下是关于CSS3和SVG这两个核心技术以及如何结合它们来实现超人飞行动画的知识点详解。 **CSS3(层叠样式表第三版)** CSS3是Web样式语言CSS的最新版本,它引入了许多新的特性和改进,增强了网页设计的灵活性和...
《jQuery CSS3催眠怀表摇摆动画特效详解》 在网页设计中,动态效果的运用可以提升用户体验,增加互动性。"jQuery CSS3催眠怀表摇摆动画特效"正是这样一种技术融合的体现,它巧妙地结合了jQuery的便利性和CSS3的强大...
《JS + CSS3 3D波浪动画焦点图轮播切换特效详解》 在Web开发领域,动态视觉效果是提升用户体验的重要手段之一。"js+css3 3D波浪动画焦点图轮播切换特效"就是一个这样的实例,它巧妙地结合了JavaScript(简称JS)与...
《jQuery与CSS3结合实现弹跳球碰撞动画特效详解》 在Web开发中,动态效果是提升用户体验的重要手段。本文将深入探讨如何利用jQuery库和CSS3技术来创建一个生动有趣的弹跳球碰撞动画特效。这个特效适用于网页游戏、...
- **jQuery动画**:使用`.animate()`方法,结合CSS3动画,可以创建更复杂的动画效果。 ### 文件结构分析 - `index.html`: 主要HTML文件,包含插件运行所需的DOM结构。 - `style.css`: CSS文件,定义了时钟的样式和...
《JS+CSS3网页左侧滑动菜单动画特效详解》 在网页设计中,交互性和用户体验是至关重要的元素,其中滑动菜单作为一种常见的导航方式,能够有效地提升网站的易用性。"js+css3网页左侧滑动菜单动画特效.zip"正是这样一...
《jQuery+CSS3矩阵数字排列自动查找动画特效详解》 在网页开发中,吸引用户注意力并提供独特用户体验的动画效果是至关重要的。"jQuery+CSS3矩阵数字排列自动查找动画特效"就是一个很好的例子,它结合了jQuery的强大...