我检查了代码 没有问题但是 还是提示错误 Uncaught TypeError: Cannot read property 'currentStyle' of undefined 求大神啊!!

来源:4-4 任意属性值(二)

MR_李

2015-08-04 17:19

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>多物体运动3</title>

<style>

body,div,span{

margin:0 !important;

padding:0 !important;

}

ul,li {

list-style: none;

}

ul li {

width: 200px;

height: 100px;

background: yellow;

margin-bottom:20px; 

border: 4px solid #000;

filter:alpha(opacity:30);

opacity: 0.3;

}

</style>

<script>

window.onload = function(){

/*var aLi = document.getElementsByTagName('li');

for(var i = 0; i<aLi.length; i++){

aLi[i].timer = null;

aLi[i].onmouseover = function(){

startMove(this,400);

}

aLi[i].onmouseout = function(){

startMove(this,200);

}

}*/

var li1 = document.getElementById('li1');

var li2 = document.getElementById('li2');

li1.onmouseover = function(){

startMove(this,'opacity',100);

}

li1.onmouseout = function(){

startMove(this,'opacity',30);

}

}

//获取样式

function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];

}

else{

return getComputedStyle(obj,false)[attr];

}

}

//var timer = null;

var alpha = 30;

function startMove(obj,attr,iTarget){

clearInterval(obj.timer);

obj.timer = setInterval(function(){

var icur = 0;

if(attr == 'opacity'){

icur = parseFloat(getStyle(obj.attr))*100;

}

else{

icur = parseInt(getStyle(obj,attr));

}

var speed = (iTarget-icur)/8;

speed = speed>0?Math.ceil(speed):Math.floor(speed);

if(icur == iTarget){

clearInterval(obj.timer)

}

else{

if(attr == 'opacity'){

obj.style.filter = 'alpha(opacity:'+(icur + speed)+')';

obj.style.opacity = (icur + speed)/100;

}

else{

obj.style[attr] = icur + speed + 'px';

}

}

},30)

}

</script>

</head>

<body>

<ul>

<li id="li1"></li>

</ul>

</body>

</html>


写回答 关注

2回答

  • MR_李
    2015-08-04 18:07:44

    原来是这错了 icur = parseFloat(getStyle(obj.attr))*100;

    kingry

    这和上面的代码有什么不同吗

    2015-08-13 17:52:53

    共 1 条回复 >

  • MR_李
    2015-08-04 17:21:03

    http://img.mukewang.com/55c083f3000114ae05570067.jpg

    但是 我检车没有问题啊

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题