1. 用jquery的css方法获取transform得到的是矩阵matrix,不利于获取translate的值,
优先使用dom.style.webKitTransform进行transform的读写

2. 从transform中读取translate的值方法

//jquery版本
function fGetTranslate($obj,type){var transformMatrix = obj.css("-webkit-transform") ||obj.css("-moz-transform")    ||obj.css("-ms-transform")     ||obj.css("-o-transform")      ||obj.css("transform");var matrix = transformMatrix.replace(/[^0-9\-.,]/g, '').split(',');var x = matrix[12] || matrix[4]; //translate xvar y = matrix[13] || matrix[5]; //translate yif(type == 'x'){return x;}else if(type == 'y'){return y;}   return '';
}
//dom版本
function fGetTranslate(obj,type){var transform = obj.style.webkitTransform || obj.style.transform;var aTrans = transform.replace(/[^0-9\-.,]/g, '').split(','),res = '';switch(type){case 'x':res = parseInt(aTrans[0]);break;case 'y':res = parseInt(aTrans[1]);break;case 'z':res = parseInt(aTrans[2]);break;default:break;} return res || '';
}

 3.tansform的效果会按照层级进行叠加,在父元素上的动画会叠加到子元素上,子元素上的多个动画也可以拆分为

多层元素的多个动画

<div style="transform:translate(-10px,-20px) scale(2) rotate(45deg) translate(5px,10px)"></div>

其变换结果等效于:

<div style="transform:translate(-10px,-20px)"><div style="transform:scale(2)"><div style="transform:rotate(45deg)"><div style="transform:translate(5px,10px)"></div></div></div>
</div>

4.transform动画的逆转,必须将父元素的transform值倒过来写,值改为负值

<div style="transform:rotate(30deg) skew(45deg)"><div style="transform:skew(-45deg) rotate(-30deg)"></div>
</div>

5.transform-origin与translate的等价性

transformation matrix是这样计算规则:

[1] 从一个单位矩阵(identity matrix)开始
[2] 根据transform-origin的x、y、z坐标值,进行平移(translate)
[3] 从左向右依次对transform里的变换函数执行乘法
[4] 根据transform-origin的x、y、z坐标值,进行反向平移

transform-origin是使用translate进行两次方向相反的平移,transform-origin是translate的语法糖。

.avatar{transform: rotate(30deg);transform-origin: 200px 300px;
}

等效于:

.avatar{transform: translate(200px, 300px) rotate(30deg) translate(-200px, -300px);transform-origin: 0 0;
}

6.transform的matrix的含义

transform: matrix(a,b,c,d,e,f)

e和f 代表着偏移量translate,x和y轴
a和d 代表着缩放比例scale,x 和y轴
b和c 代表着斜切skew(具体参数和角度关系为, b-->tanθ y轴 c-->tanθ x轴 ,我们具体操作的时候还是要使用小数的)
abcd 四个参数代表着旋转,旋转 = 缩放 + 斜切(具体关系待查)

参考:https://segmentfault.com/a/1190000007421401
     https://segmentfault.com/a/1190000010688390?_ea=2553323

转载于:https://www.cnblogs.com/mengff/p/7520609.html

transform总结相关推荐

  1. css3之transition、transform、animation比较

    css3动画多少都有些了解,但是对于transition.transform.animation这几个属性一直是比较模糊的,所以啊,这里做一个总结,也希望大家都可以对此有一个更好地理解.    其实, ...

  2. 基于css3 transform实现散乱的照片排列

    分享一款基于css3 transform实现散乱的照片排列.这是一款简单零散的css3相册排列特效下载.效果图如下: 在线预览    源码下载 实现的代码. html代码: <div class ...

  3. OpenCV中的尺度不变特征变换(SIFT Scale-Invariant Feature Transform)

    OpenCV中的尺度不变特征变换(SIFT Scale-Invariant Feature Transform) 1. 效果图 2. 原理 2.1 步骤 2.2 opencv实现方法 2.3 SIFT ...

  4. FT(Fourier Transform)在滤波上的应用

    数学真的是一个神奇的科学,美妙之处无法言语形容. 傅里叶变换的推导见博客: 对于非周期的函数就是周期T趋于0,将一般非周期的函数写作傅里叶级数的形式: 其中:就是FT(Fourier Transfor ...

  5. 放大 旋转 css3,CSS3详解:transform 的旋转、旋转放大、放大、移动

    CSS3 transform是什么? transform的含义是:改变,使-变形:转换 CSS3 transform都有哪些常用属性? transform的属性包括:rotate() / skew() ...

  6. std::transform使用

    std::transform在指定的范围内应用于给定的操作,并将结果存储在指定的另一个范围内. 以下是std::transform的两个声明,一个是对应于一元操作,一个是对应于二元操作 templat ...

  7. C++ transform for_each

    #include<iostream> #include<vector> #include <list> #include <algorithm> #in ...

  8. 三棱锥四面体html css,CSS transform属性实现旋转的四面体

    原创声明 本文系作者辛苦码字所得,欢迎分享和转载,但请在明显位置注明作者的如下信息: 笔名:来碗鸡蛋面 简书主页:https://www.jianshu.com/u/4876275b5a73 邮箱:j ...

  9. TF (transform) in ROS

      总结: tf(transform)  package有两种broadcast方式 1.写在程序里,broadcast 2.另一种方式,当坐标变换为不随时间而改变的变换时,可以在launch文件中l ...

最新文章

  1. Docker 容器技术 — Private Registry
  2. 开关电源 误差放大器电路
  3. wordpress hmailserver等相关 3
  4. YOLOv5的pytorch模型文件转换为ONNX文件
  5. nginx+keepalived双机热备
  6. C++描述杭电OJ 2020.绝对值排序 ||
  7. linux C 获取日期时间
  8. 普通IO流字符输入输出流文件拷贝
  9. Java 集合List、Set、HashMap操作二(Map遍历、List反向、Set删除指定元素,集合只读、TreeMap操作、List转Array、List移动元素)
  10. 使用 Core Graphics 绘制基本形状
  11. bzoj2245 [SDOI2011]工作安排 费用流
  12. BP(反向传播)神经网络
  13. 微信小程序多位验证码/密码输入框
  14. javascript基础之拖拽(2)(详细篇)---FileReader对象,blod对象
  15. KNN 算法实现 Iris 数据集分类
  16. YOLOv5训练自己的数据集(超详细完整版)
  17. 一次投诉淘宝卖家的过程
  18. VC++,6.0 MFC设计--- 图形界面
  19. 小项目2——(未登录)指定微博账号基本公开信息的搜集
  20. [Jzoj] 2198.简单数迷

热门文章

  1. usaco Palindromic Squares
  2. oracle重启一个节点集群,帮忙分析一例数据库两节点集群每隔几个月节点重启
  3. linux输出指定数量脉冲,ESM335x Linux输出脉冲计数
  4. oracle cdc 提交顺序,Oracle CDC部署流程
  5. mysql2008 limit,在SQL Server中实现 Limit m, n 的功能
  6. android studio导入aar包,AndroidStudio导入本地aar文件
  7. java负数右移_收入囊中篇---Java程序基础(二)
  8. esc pos java打印图片_android 调用蓝牙打印机(ESC/POS 热敏打印机)打印小票和图片...
  9. 【C++】多态(早期绑定、后期绑定)、抽象类(纯虚函数)、虚析构函数
  10. C语言中(字符串)输入scanf()、gets()、fgets()以及getchar()、getc()函数的联系与区别