求大神指点

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

qq_轮滑到老_04284587

2017-07-14 10: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>多物体分别运动宽、高 </title>

<style type="text/css">

  *{margin:0; padding:0;}

  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');

Li1.onmouseover = function(){

startMove(this,'opacity',100);

}

Li1.onmouseout = function(){

startMove(this,'opacity',30);

}

}


function getStyle(obj,attr){

if(obj.currenStyle){

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(icur=='opacity'){

icur = Math.round(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>


写回答 关注

1回答

  • MR帽子先生
    2017-07-18 08:38:27

    问题?你的问题是什么?

JS动画效果

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

113925 学习 · 1443 问题

查看课程

相似问题