<!DOCTYPE?html>
<html>
<head>
<meta?charset="UTF-8">
<title>shareicon</title>
</head>
<style?type="text/css">
*{
margin:0px;padding:0px;font:14px?"微軟雅黑"?normal;
}
#content{
position:absolute;
left:0px;
top:200px;
width:200px;??
height:200px;
background-color:?#cc3399;
opacity:?0.4;
}
#content?span{?
position:absolute;?
left:200px;
top:37.5%;??
width:20px;
height:25%;
padding-top:10px;
background-color:?#99cc00;
text-align:?center;
}
}
</style>
<script?type="text/javascript">
window.onload=function(){
var?mBox=document.getElementById("content");
mBox.onmouseover=function(){
changeOpacity(1);
}
mBox.onmouseout=function(){
changeOpacity(0.4);
}
var?timer=null;
var?mOpacity=0.4;
function?changeOpacity(itarget){
clearInterval(timer);
timer=setInterval(function(){
var?speed=0;
if(mOpacity<itarget){
speed=0.1;
}else{
speed=-0.1;
}
if(mOpacity==itarget){
clearInterval(timer);
}else{
mOpacity+=speed;
mBox.style.opacity=mOpacity;
}
},300)
}
}
</script>
<body>
<div?id="content">
<span>分享</span>
</div>
</body>
</html>
2015-09-20
通過控制臺輸出當前透明度和speed如下:
0.4/0.1
0.5/0.1
0.6/0.1
0.7/0.1
0.7999999999999999/0.1
0.8999999999999999/0.1
0.9999999999999999/0.1
1.0999999999999999/-0.1
0.9999999999999999/0.1
1.0999999999999999/-0.1
0.9999999999999999/0.1
1.0999999999999999/-0.1
0.9999999999999999/0.1
1.0999999999999999/-0.1
0.9999999999999999/0.1
1.0999999999999999/-0.1
0.9999999999999999/0.1
1.0999999999999999/-0.1
0.9999999999999999/0.1
1.0999999999999999/-0.1
0.9999999999999999/-0.1
0.8999999999999999/-0.1
0.7999999999999999/-0.1
0.7/-0.1
0.6/-0.1
0.5/-0.1
貌似原因就出在這個莫名其妙出來的小數點上,無解..
2015-09-19
把這些參數,值全都乘以100,最后在mBox.style.opacity=mOpacity/100,這樣設置的話就不會出現你說的那種情況,可以把時間調小一點,流暢一點。
感覺這個應該是本生存在的bug,在沒有改變其他東西的情況下,把你的源代碼的定時器的時間調小之后,有時會出現這種現象有時不會,我也不懂怎么回事