问答详情
源自:4-4 任意属性值(二)

为什么我的透明度不是变100,而是更加淡了

<!doctype html>

<html>

<head>

<meta charset="utf-8">

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

<style type="text/css">

*{margin:0;padding:0;}

ul{

list-style: none;

}


ul li{

width: 200px;

height: 100px;

background: yellow;

margin-bottom: 20px;

border: 5px solid #011;

filter:alpha(opacity:30);

opacity: 0.3;

}


</style>


<script type="text/javascript">

window.onload=function(){


var aLi=document.getElementById('lia');

var bLi=document.getElementById('lib');

aLi.onmouseover=function(){

startMove(this,'opacity',100);

}

aLi.onmouseout=function(){

startMove(this,'opacity',30);

}


function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];//针对IE浏览器

}

else{

return getComputedStyle(obj,false)[attr];//针对火狐浏览器

}

}


var alpha=30;

function startMove(obj,attr,iTarget){

clearInterval(obj.timer);

obj.timer=setInterval(function(){

var icur=0;

if (attr=='opacity') {

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

}

else{

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

}

var 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="lia"></li>

</ul>

</body>

</html>


提问者:蛊木毒 2016-07-27 12:05

个回答

  • dphenkid
    2016-07-27 14:44:48

    把这行删掉即可var icur=parseInt(getStyle(obj,attr));