某些场景需要读取 css3 transform的属性

例如 transform:translate(10px,10px) rotate(-45deg);

这该怎么读取呢,正则表达式?毫无疑问这很坑爹

试试浏览器getComputedStyle得到的style对象中有没有这些属性,得到的只有matrix(0.866025, 0.5, -0.5, 0.866025, 0px, 0px) 这种格式

没有tranlate和rotate这些细节,但是所有的transform都可以在matrix数据里运算出来,

下面是代码

var values = tr.split('(')[1].split(')')[0].split(',');
var a = values[0];
var b = values[1];
var c = values[2];
var d = values[3];

var scale = Math.sqrt(a*a + b*b);

console.log('Scale: ' + scale);

// arc sin, convert from radians to degrees, round
var sin = b/scale;
// next line works for 30deg but not 130deg (returns 50);
// var angle = Math.round(Math.asin(sin) * (180/Math.PI));
var angle = Math.round(Math.atan2(b, a) * (180/Math.PI));

console.log('Rotate: ' + angle + 'deg');

在线示例:http://jsbin.com/obamiq/1/edit

这个例子没有包含translate screw这些值,等会抽时间做个完整的。

最新文章

  1. 工作笔记--哪些bug应由研发发现?
  2. Hdu 2955 Robberies 0/1背包
  3. MySQL workbench 中文乱码 显示口口
  4. Redis从基础命令到实战之集合类型(Set)
  5. cocos2d-x之Action特效
  6. PYTHON不定参数与__DOC__
  7. javascript touch事件
  8. jquery 自动调整图片大小
  9. python自学笔记(四)python基本数据类型之元组、集合、字典
  10. python操作---RabbitMQ
  11. 【ACM小白成长撸】--计算单词个数
  12. Health Check - 每天5分钟玩转 Docker 容器技术(142)
  13. asp.net core 支付宝支付( 电脑2.0)
  14. 我最喜欢用的css3之2D转换之translate用法
  15. nodejs中thiskeyword的问题
  16. jQuery的init都做了些什么
  17. Docker源码分析(六):Docker Daemon网络
  18. 没有对比就没有伤害,memcache and redis
  19. js的事件冒泡和点击其他区域隐藏弹出层
  20. C# 3.0-c#5.0 变化

热门文章

  1. SolrCloud搭建
  2. 扫描仪扫描文件处理-Photoshop批处理无响应问题
  3. spring boot:解决cors跨域问题的两种方法(spring boot 2.3.2)
  4. allure测试报告
  5. Python开发 常见异常和解决办法
  6. Python ( 学习 基础篇第一部 )
  7. 手写Javaweb服务器
  8. 【3】TensorFlow光速入门-训练及评估
  9. DOM4J API
  10. STM32入门系列-STM32时钟系统,STM32时钟树