问答详情
源自:2-2 JS透明度动画

为啥出不来效果啊,求解答

#div1 {
    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('div1');
     oDiv.onmouseover = function(){
         startMove(30);
         }
     oDiv.onmouseout = function(){
         startMove(100);
         }    
}
var timer = null;
var alpha = 30;
function startMove(iTarget){
    var oDiv = document.getElementById('div1');
    clearInterval(timer);
    timer = setInterval(function(){
        var speed;
        if(alpha > iTarget){
            speed = -10;
        }
        else{
            speed = 10;
        }
        if(alpha == iTarget){
            clearInterval(timer);
        }
        else{
            alpha+=speed;
            oDiv.style.filter = 'alpha(opacity:'+alpha+')';
            oDIvc.style.opacity = alpha/100;
        }
    },30)
}

</script>
</head>

<body>
<div id="div1">透明度/div>

在火狐浏览器上出不来效果,透明度没变化

提问者:sh_ero 2016-08-18 14:09

个回答

  • 不如怀念o
    2016-08-18 17:27:12
    已采纳

    只要不是立即执行的代码,放在哪无所谓,而且你用的是onload事件,本身就是页面加载完才执行。如果在别的浏览器中可以实现,而在火狐中不行时,可以试试加上前缀-moz-opacity。ps:火狐以前很强大,现在让人觉得很垃圾,还是谷歌的chrome标准支持的好。

  • sh_ero
    2016-08-18 17:07:40

    改了以后还是没有变化,,

  • sh_ero
    2016-08-18 17:07:06

    放在head里面但是前面有window.load也不行吗

  • 慕用8241493
    2016-08-18 16:17:24

    onmouseover里的startMove(30)是100吧,你定义的alpha就是30,放上去还是30,怎么会有变化,

  • 慕用8241493
    2016-08-18 16:04:30

    js代码写在body里面啊,浏览器是先加载<head>里面的东西,你写在上面怎么找得到标签的id