平时我们都会去获取元素的各种属性值,例如宽高等等的值!但是tranform是个让人很头疼的点,获取出来的是矩阵,耐何线性代数学的并不是那么6啊。

解决方法的思路:只能采取有点取巧的方法,在我们设置的时候把它记录一下,然后在通过这个函数去获取出之前设置的transform相关的值,再也不用去依靠浏览器来知晓。

不多说,上菜。

<style type="text/css">
#box {
width: 100px;
height: 100px;
background: red;
}
</style>
<script type="text/javascript">
/* 设置和获取transform相关的值 */
/*
attr:
rotate
rotateX
rotateY
rotateZ
scale
scaleX
scaleY
skewX
skewY
translateX
translateY
translateZ 必须通过它设置,才可以通过它获取
*/
function setTransform(el,attr,val){
if(!el.transform){
el.transform = {};
//如果元素没有这个自定义属性我们就创建一下,格式是个对象
}
if(typeof val == "undefined"){//如果没传val参数,说明是取值操作,则返回之前设置的对应的attr的值
return el.transform[attr];
} else {
el.transform[attr] = val;//记录的值先记住或者改正
var value = "";
for(var s in el.transform){
//console.log(s,el.transform[s]);
switch(s){
case "rotate":
case "rotateX":
case "rotateY":
case "rotateZ":
case "skewX":
case "skewY":
value += (s+"("+el.transform[s]+"deg) ");
break;
case "translateX":
case "translateY":
case "translateZ":
value += (s+"("+el.transform[s]+"px) ");
break;
case "scale":
case "scaleX":
case "scaleY":
value += (s+"("+el.transform[s]+") ");
break;
}
}
el.style.WebkitTransform = value;
el.style.MozTransform = value;
el.style.msTransform = value;
el.style.transform = value;
}
}
window.onload = function(){
var box = document.querySelector('#box');
/*
在设置的时候去记录transform相应的值
*/
setTransform(box,"rotate",30);
setTransform(box,"scale",.2);
console.log(setTransform(box,"scale")); };
</script>
</head>
<body>
<div id="box"></div>
</body>

有个这样的函数,操作起来简直是方便多啦!

最新文章

  1. UI控件(UISegmentedControl)
  2. ubuntu配置 Java SE 1.6
  3. 苹果应用 Windows 申请 普通证书 和Push 证书 Hbuilder 个推(2)
  4. Mac 自带 apache
  5. ios crash 日志分析
  6. flex Bindable
  7. [GRYZ2015]工业时代
  8. Pomelo实现最简单的通信-egret。
  9. VIM用法
  10. springMVC整合Junit4进行单元测试
  11. JVM与对象初始化
  12. ADT Android开发环境搭建小记
  13. bind、call和apply对比和使用
  14. tcp没用吗?为什么MOBA、“吃鸡”游戏不推荐用tcp协议
  15. tcpdf中增加微软雅黑的正确方式
  16. python3+requests+unittest:接口自动化测试(一)
  17. C#解密退款req_info结果通知
  18. python 字符串与列表的相互转换 数据类型转换
  19. vue--循环列表
  20. ASP.NET站点Windows身份验证集成AD域,非LDAP

热门文章

  1. navicat创建存储过程、触发器和使用游标
  2. 58、js扩展
  3. TCP/IP----基本知识
  4. Java 银行家算法
  5. 关于git的一些理论知识
  6. OpenStack运维(三):OpenStack存储节点和配置管理
  7. UWP 在Xaml中使用cu和fcu资源
  8. centos7 yum 安装 redis
  9. 记录Mac下安装pyenv时所遇到的问题
  10. php isset和empty方法的区别