Javascript,代码跳转到if else语句时它应该是真的

时间:2015-10-24 01:06:55

标签: javascript jquery html5 css3 iframe

好的,现在是情况,我正在使用css3滑入式菜单系统。

我不得不使用JavaScript,所以我跳进去了。这是菜单的工作方式: 主页我有一个div有很多儿童div(视频)和一个鬼鬼祟祟的隐藏iframe,现在当有人访问我网站上的其他页面时,主要的div去z:-100并得到opacity:0和Iframe挺身而出,像魔术般滑落。

但是我想更进一步,如果他去另一个页面,我希望已经向前加载的iframe上下滑动。现在那部分不起作用。出于分析目的的警报是(可能)有问题的部分:

function betolt(el, frame) {
    var elem = document.getElementById(el);
    var keret = document.getElementById(frame);
    if (elem.style.opacity == 1) {
        elem.style.transition = "zIndex 0.3s linear 0s";
        elem.style.zIndex = "-1000";
        elem.style.transition = "opacity 0.5s ease-out 0s";
        elem.style.opacity = 0;



        keret.style.transition = "opacity 0.4s ease-in 0.2s";

        keret.style.opacity = 1;
        keret.style.transition = "zIndex 0.5s linear 0.4s";

        keret.style.zIndex = "100";
        keret.style.transition = "height 0.4s linear 0.5s";

        keret.style.height = "100%";

        keret.style.width = "100%";
        alert("done with the first part boss");


    } else if (elem.style.opacity == 0) {
        alert("i made it through");
        keret.style.transition = "height 0.5s linear 0s";
        keret.style.height = "0px";

        keret.style.transition = "height 0.5s linear 1s";

        keret.style.height = "100%";

    }

}

此阶段不在此阶段的代码甚至不会跳转到第一个if语句。 它只有在我注释掉else if部分并使用if之后才有效:

if(elem.style.opacity ="1"){....}

但我认为这是不对的。

3 个答案:

答案 0 :(得分:0)

本声明:

if(elem.style.opacity ="1"){....}

总是评估为true,因为“1”是假的,或者不是零。它会将值“1”赋给elem.style.opacity。

if(elem.style.opacity=="1"){....}
如果elem.style.opacity为“1”,

将为true,并且不会更改elem.style.opacity的值。

答案 1 :(得分:0)

style.opacity包含String数据类型,因此当您将测试从== 1更改为== "1"时,它是否有效是有意义的(我接受= "1" 1}}在这里作为拼写错误)。它还可以包含两个字符串“initial”或“inherit”,您可以检查它们,如果一切都出错,甚至可能是undefined

虽然如果使用==它不应该有所作为,引擎不应该在这里进行自动投射吗? BTW:IE 8及更低版本不支持opacity

答案 2 :(得分:0)

我发现opacity问题很少,所以我选择zIndex  它确实一直在if仍然需要做一点修补,但我想我能够做到。感谢大家的帮助。