Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 淡入淡出的脚本在IE中不起作用?_Javascript_Cross Browser - Fatal编程技术网

Javascript 淡入淡出的脚本在IE中不起作用?

Javascript 淡入淡出的脚本在IE中不起作用?,javascript,cross-browser,Javascript,Cross Browser,我对Javascript非常陌生,一直在尝试在网站上实现一些淡入淡出的效果。 我已经设法将我想要的效果整合在一起,在Firefox和Safari上一切都很好。不过我不喜欢。第一个改变背景颜色的脚本可以工作,但是第二个在内容中淡入淡出的脚本没有任何作用 我从头部调用脚本,如下所示: window.onload=siteIntro; 不起作用的JavaScript就在这里。如果您有任何帮助或建议,我们将不胜感激,如有需要,可以查看 非常感谢 // ################# Fade Di

我对Javascript非常陌生,一直在尝试在网站上实现一些淡入淡出的效果。 我已经设法将我想要的效果整合在一起,在Firefox和Safari上一切都很好。不过我不喜欢。第一个改变背景颜色的脚本可以工作,但是第二个在内容中淡入淡出的脚本没有任何作用

我从头部调用脚本,如下所示:

window.onload=siteIntro;
不起作用的JavaScript就在这里。如果您有任何帮助或建议,我们将不胜感激,如有需要,可以查看

非常感谢

// ################# Fade Divs ###############################

function Fade(objID,CurrentAlpha,TargetAlpha,steps){

    var obj = document.getElementById(objID);

    CurrentAlpha = parseInt(CurrentAlpha);
    if (isNaN(CurrentAlpha)){
        CurrentAlpha = parseInt(obj.style.opacity*100);
        if (isNaN(CurrentAlpha))CurrentAlpha=100;
    }
    var DeltaAlpha=parseInt((CurrentAlpha-TargetAlpha)/steps);
    var NewAlpha = CurrentAlpha - DeltaAlpha;

    if (NewAlpha == 100 && (navigator.userAgent.indexOf('Gecko') != -1 && navigator.userAgent.indexOf('Safari') == -1)) NewAlpha = 99.99;

    obj.style.opacity = (NewAlpha / 100);
    obj.style.MozOpacity = obj.style.opacity;
    obj.style.KhtmlOpacity = obj.style.opacity;
    obj.style.filter = 'alpha(opacity='+NewAlpha+')';

    if (steps>1){
        setTimeout('Fade("'+objID+'",'+NewAlpha+','+TargetAlpha+','+(steps-1)+')', 50);
    }
}

// ################# Toggle content div visibility ###############################
function mainVis(showMain) {
    document.getElementById(showMain).style.visibility ="visible";
}

function pageSwitch(show0, hide0, hide1, hide2, hide3) {
    document.getElementById(show0).style.visibility ="visible";
    document.getElementById(hide0).style.visibility ="hidden";
    document.getElementById(hide1).style.visibility ="hidden";
    document.getElementById(hide2).style.visibility ="hidden";
    document.getElementById(hide3).style.visibility ="hidden";
}

function pg1() {
    pageSwitch('prices', 'icon', 'about', 'map', 'news');
    Fade('prices','0',100,30)
}
function pg2() {
    pageSwitch('about', 'icon', 'prices', 'map', 'news');
    Fade('about','0',100,30)
}
function pg3() {
    pageSwitch('map', 'icon', 'about', 'prices', 'news');
    Fade('map','0',100,30)
}
function pg4() {
    pageSwitch('news', 'icon', 'map', 'about', 'prices');
    Fade('news','0',100,30)
}

// ################# Site Intro Functions ###############################

function siteIntro() {
    setTimeout("NLBfadeBg('b1','#FFFFFF','#000000','3000')",2000);
    mainVis('main');
    setTimeout("Fade('main','',100,30)",5000);
}

也许您可以利用这样一个现成的跨浏览器脚本


或者使用jQuery(非常适合动画和效果)或任何其他JS库

,也许您可以利用这样一个现成的跨浏览器脚本


或者使用jQuery(非常适合动画和效果)或任何其他JS库

MS过滤器仅适用于“具有布局”的元素

要强制布局,可以为元素指定
宽度
高度
,或使用旧的
缩放:1技巧

不确定这是否是您的问题的原因,但您可以尝试一下

您可以阅读有关hasLayout的更多信息

另一件事,而不是:

setTimeout('Fade("'+objID+'",'+NewAlpha+','+TargetAlpha+','+(steps-1)+')', 50)` 
你可以简单地写:

setTimeout(function() { Fade(objID, NewAlpha, TargetAlpha, steps-1); }, 50)`

除非您只是为了好玩和/或学习,否则请使用现有的JS库,而不是重新发明轮子。

MS过滤器仅适用于“具有布局”的元素

要强制布局,可以为元素指定
宽度
高度
,或使用旧的
缩放:1技巧

不确定这是否是您的问题的原因,但您可以尝试一下

您可以阅读有关hasLayout的更多信息

另一件事,而不是:

setTimeout('Fade("'+objID+'",'+NewAlpha+','+TargetAlpha+','+(steps-1)+')', 50)` 
你可以简单地写:

setTimeout(function() { Fade(objID, NewAlpha, TargetAlpha, steps-1); }, 50)`

除非您只是为了好玩和/或学习,否则请使用现有的JS库,而不是重新发明轮子。

这可能不是您想要的答案,但您不应该这样做:您可以使用jQuery为您完成这项工作。一行或两行代码,并且它是跨浏览器兼容的。

这可能不是您正在寻找的答案,但您不应该这样做:您可以使用jQuery为您完成这项工作。一行或两行代码,并且可以跨浏览器兼容。

就是这样!错过了高度!!!你是一个明星。。。是的,我知道可能有更简单的方法,但我正在努力了解发生了什么,而不是重温开箱即用的东西。非常感谢就这样!错过了高度!!!你是一个明星。。。是的,我知道可能有更简单的方法,但我正在努力了解发生了什么,而不是重温开箱即用的东西。非常感谢