为了账号安全,请及时绑定邮箱和手机立即绑定

currentStyle getComputedStyle?

currentStyle getComputedStyle?

2017哎呦不错 2017-09-25 14:23:47
function getStyle(obj,attr){   return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr]; }为什么我在调用这个函数的时候,总是报错  Uncaught TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.  后者是   currentStyle  undefined的错误
查看完整描述

2 回答

?
cnyballk

TA贡献148条经验 获得超93个赞

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <input id="a" value="1"></input>
</body>
</html>
<script src="try.js"></script>
<script>
function getStyle(obj,attr){
  return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr];
}
var a = document.getElementById('a');
console.log(getStyle(a,"width"))
</script>


查看完整回答
反对 回复 2017-09-25
?
HalfAnHour

TA贡献52条经验 获得超73个赞

说得很清楚啊,语法错误:getComputedStyle在window执行失败:第一个参数不是一个节点类型。后面那个currentStyle未定义

查看完整回答
反对 回复 2017-09-25
  • 2017哎呦不错
    2017哎呦不错
    window.onload=function(){ var str=''; var len=20; var timer=null; var num=0; var aDiv=document.getElementsByTagName('div'); for (var i = 0; i <len; i++) { str+='<div style="width:20px;height:20px;background:red;position:absolute;top:0px;left:'+i*40+'px;"></div>'; } document.body.innerHTML=str; document.onclick=function(){ clearInterval(timer); timer=setInterval(function(){ doMove(aDiv[num],'top',23,500); num++; if (num===len) { clearInterval(timer); } },100); } 想实现点击document,所有的div往下走,再点击一下,往上走,求教。
  • 2017哎呦不错
    2017哎呦不错
    function getStyle(obj,attr){ if (obj.currentStyle) { return obj.currentStyle[attr]; }else{ return getComputedStyle(obj)[attr]; } }; function doMove(obj,attr,dir,target,endFn){ dir=parseInt(getStyle(obj,attr))<target?dir:-dir; clearInterval(obj.timer); obj.timer=setInterval(function(){ var speed=parseInt(getStyle(obj,attr))+dir; if (speed<target&&dir<0||speed>target&&dir>0) { speed=target; } obj.style[attr]=speed+"px"; if (speed==target) { clearInterval(obj.timer); if (endFn) { endFn(); }; }; },30); } 这是doMove和getStyle的函数
  • 2 回答
  • 0 关注
  • 1654 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信