0

0

css3中变形与动画(一)_html/css_WEB-ITnose

php中文网

php中文网

发布时间:2016-06-24 11:40:32

|

1037人浏览过

|

来源于php中文网

原创

css3制作动画的几个属性:变形(transform),过渡(transition)和动画(animation)。

首先介绍transform变形。

transform英文意思:改变,变形。

css3中transform注意包括以下几种:旋转(rotate),扭曲(skew),缩放(scale)、移动(translate)和矩阵变形matrix。

语法:

立即学习前端免费学习笔记(深入)”;

transform : none |  [  ]* transform: rotate | scale | skew | translate |matrix;

none就是默认值,不进行变形。

:表示一个或多个变换函数,以空格分开。即可同时对一个元素进行transform的多种属性操作,例如同时用rotate,scale和translate三种。

rotate( [ ])skewX()skewY()scale( [])translate( [])matrix(     )

一、旋转rotate

rotate() :通过指定的角度参数对元素指定一个2D rotation(2D旋转),需先有transform-origin属性的定义。

transform-origin定义的是旋转的基点,其中angle是指选择角度,正顺时针旋转,负逆时针旋转。

二、translate平移

translate()函数可以把元素从原来的位置移动,而不影响在x,y轴上的任何web组件,类似于position:relative。

translate()分三种情况:

1、translate(x,y)水平和垂直方向同时移动。

Note:translate移动的基点默认为元素中心点,可以根据transform-origin改变基点。

如果第二个值没设置,默认为0。

2、translateX(x)仅水平方向移动。

相当于translate(x,0,)的简写,基点为元素中心点。

3、translateY(y)仅垂直方向移动。

相当于translate(0,y)的简写,基点为元素在中心。

三、scale缩放

scale缩放和translate移动非常相似,也有三种情况。

缩放中心点:即元素的中心位置

基数:缩放就是既可以缩小,也可以放大;缩放基数为1,大于1放大,小于1缩小。

1、scale(x,y)元素在水平和垂直方向同时缩放。

Note:第二个参数未提供则取与第一个一样的值。

 

MiroThinker
MiroThinker

MiroMind团队推出的研究型开源智能体,专为深度研究与复杂工具使用场景设计

下载

2、scaleX(x)x轴缩放。

3、scaleY(y)y轴缩放。

 

scale可以取负值,负值会让元素翻转并缩放。

Scale(-1.5)

 

四、skew切变

skew和translate、scale一样有三种情况。

1、skew(x,y):x轴和y轴上的skew transformation(斜切变换)。

即x轴和y轴同时按照一定的角度值进行扭曲变形。

如果第二个参数未提供,则值为0,也就是y轴无斜切。

2、 skewX(x):按给定角度沿x轴指定一个skew transformation(斜切变换)。

 

3、skewY(y):按给定的角度沿Y轴指定一个skew transformation(斜切变换)。

 

五、矩阵matrix

matrix(, , , , , ):以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a,b,c,d,e,f]变换矩阵。就是基于水平方向和垂直方向重新定位元素。

SVG,css3,html5的canvas中都有矩阵变换,接下来简单说说。

一个元素渲染后就可以得到一张位图,然后对这个位图上每一点进行变换,就可以得到新的一张位图,从而产生平移,缩放,旋转,切变及镜像反射灯效果。

1、几个概念

  • 矩阵乘法中,首先要确认两个矩阵是否可以相乘:只有第一个矩阵的列数等于第二个矩阵的行数,这样的两个矩阵才能相乘。
  • 左乘【前乘】:即乘在左边,A左乘E即AE。
  • 一个m*n的矩阵左乘一个n*p的矩阵,将得到一个m*p的矩阵。
  • 2D矩阵变换都提供6个参数a,b,c,d,e,f,基本公式为:

    其中,x和y是元素最开始的坐标,x'和y'是矩阵变换后得到的新坐标。

    Note:变换矩阵中a,b,c,d,e,f6个参数是竖着排的。

    x'=ax+cy+ey'=bx+dy+f

    2、矩阵变换和transform的关系

    a、矩阵和translate平移

    x'=ax+ cy+e,我们设a=1,c=0,则x'=x+e,

    y'=bx+dy+f,同样设b=0,d=1,则y'=y+f。

    这就是translate(e,f)了。

    所以说translate(e,f)就是简化了的变换矩阵matrix(1,0,0,1,e,f),

    (x,y)平移(tx,ty),就意味着做了一个【1 0 0 1 tx,ty】的矩阵变换。

    b、矩阵和scale缩放

    x'=ax+cy+e,我们设c=0,e=0,则x'=ax,

    y'=bx+dy+f,我们设b=0,f=0,则y'=dy。

    这就是scale(a,d)了。

    所以说scale(a,d)就是简化了的变换矩阵matrix(a,0,0,d,0,0)。

    (x,y)缩放(sx,sy),就意味着做了一个【sx 0 0 sy 0 0】的矩阵变换。

    c、矩阵和rotate旋转

    rotate(a deg)等价于【cons(a) sin(a) -sin(a) cons(a) 0 0】矩阵变换。

    d、矩阵和skew切变

    skewX(a deg)等价于【1 0 tan(a) 1 0 0】的矩阵变换。

    skewY(a deg)等价于【1 tan(a) 0 1 0 0】的矩阵变换。

    所以说Matrix就是将所有的2D效果全部组合在了一起使用。

    六、transform-origin

    前面说了,元素默认的基点是其中心位置,可用transform-origin改变其基点。

    使用:

    transform-origin(x,y):用来设置元素的基点(参考点)。默认点是元素的中心点。x,y的值可以是百分比,em,px,其中x也可以是left,center,right,y可以是top,center,bottom,这点和background-position一样。

     

     

    七、资源链接

    前端开发中需要用到的变换矩阵

    CSS3:transform与transition背后的数学原理[winter]

    CSS3 2D Transform

    w3c css3-2d-transforms

    w3c RotationDefined

    w3 文档,关于坐标系以及矩阵变换属性
    w3 文档,SVG中的3D变换矩阵
    w3 文档,CSS 3中的3D变换矩阵

    Transform-style和Perspective属性

     

    相关文章

    HTML速学教程(入门课程)
    HTML速学教程(入门课程)

    HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    C++ 设计模式与软件架构
    C++ 设计模式与软件架构

    本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

    14

    2026.01.30

    c++ 字符串格式化
    c++ 字符串格式化

    本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

    9

    2026.01.30

    java 字符串格式化
    java 字符串格式化

    本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

    12

    2026.01.30

    python 字符串格式化
    python 字符串格式化

    本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

    4

    2026.01.30

    java入门学习合集
    java入门学习合集

    本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

    20

    2026.01.29

    java配置环境变量教程合集
    java配置环境变量教程合集

    本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

    18

    2026.01.29

    java成品学习网站推荐大全
    java成品学习网站推荐大全

    本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

    19

    2026.01.29

    Java字符串处理使用教程合集
    Java字符串处理使用教程合集

    本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

    3

    2026.01.29

    Java空对象相关教程合集
    Java空对象相关教程合集

    本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

    6

    2026.01.29

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Css3入门基础视频教程
    Css3入门基础视频教程

    共33课时 | 6.6万人学习

    HTML5前端面试题
    HTML5前端面试题

    共26课时 | 3.1万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号