666图
2015-12-25 23:02
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>边距</title>
<style type="text/css">
*{margin:0;padding:0;}
#box1{
width:200px;
height:200px;
background:red;
filter:alpha(opacity:30);
opacity:0.3;
}
</style>
<script type="text/javascript">
window.onload=function(){
var oDiv = document.getElementById("box1");
oDiv.onmouseover = function(){
startMove(100);
}
oDiv.onmouseout = function(){
startMove(30);
}
}
var timer=null;
var alpha=30;
function startMove(itarget){
var speed=30;
var oDiv = document.getElementById("box1");
clearInterval(timer);
timer=setInterval(function(){
if (alpha>itarget){
speed = -10;
}
else{
speed = 10;
}
if(alpha == itarget){
clearInterval(timer);
}
else{
alpha+=speed;
oDiv.style.opacity=alpha/100;
oDiv.style.filter='alpha(opacity='+alpha+')';
}
},50);
}
</script>
</head>
<body>
<div id="box1"></div>
</body>
</html>
想知道oDiv.style.filter='alpha(opacity='+alpha+')';改变透明度这里为什么这么写'+alpha+'?alpha不是变量吗?应该可以直接等于alpha啊?
'alpha(opacity='+alpha+')'你把这个分开三部分看就清楚了
第一部分是字符 'alpha(opacity='
第二部分是变量 +alpha+
第三部分是字符 ')'
你加的是变量啊! 字符串拼接,就是把需要连接到一起的数值或字符,拼接到一起组成新的值。
我查到的:IE的透明度的属性从IE4-IE8使用filter: alpha(opacity=number),这里的number是0-100之间的整数数值,IE8中我们也可以用-ms-filter: "alpha(opacity=number)"。IE中还支持progid:DXImageTransform.Microsoft.Alpha(Opacity=xx)这种写法,但是不建议使用。在这里,number是0-100之间的整数数值,但是'+alpha+'不是字符串了吗?
字符串拼接,你看看IE透明度用的CSS属性。所以不能直接等于,变量不加引号,但是字符串得加。
JS动画效果
113923 学习 · 1443 问题
相似问题