Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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时,代码跳转到if-else语句中;这应该是真的_Javascript_Jquery_Html_Css_Iframe - Fatal编程技术网

Javascript时,代码跳转到if-else语句中;这应该是真的

Javascript时,代码跳转到if-else语句中;这应该是真的,javascript,jquery,html,css,iframe,Javascript,Jquery,Html,Css,Iframe,好的,现在情况是这样的,我正在开发一个css3滑入和滑出菜单系统 我不得不使用JavaScript,所以我开始使用它。这是菜单的工作原理: 主页我有一个div,里面有很多子div(视频)和一个隐藏的iframe,现在当有人访问我网站上的另一个页面时,主div会转到z:-100并获得opacity:0,iframe会像魔术一样向前滑动 但我想更进一步,如果他转到另一页,我希望已经向前加载的iframe上下滑动。现在这部分不起作用了。这些警报用于分析,这里是(可能)有问题的部分: function

好的,现在情况是这样的,我正在开发一个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"){....}
但我认为这是不对的。

这句话:

if(elem.style.opacity ="1"){....}
将始终计算为true,因为“1”为false,或者不是零。它将为elem.style.opacity指定值“1”

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

如果elem.style.opacity为“1”,则为真,并且它不会更改elem.style.opacity的值。

style.opacity
保存一个
字符串
数据类型,因此当您将测试从
==1
更改为
=“1”
(我将
=“1”
视为打字错误)时,它会起到一定的作用。它还可以保存两个字符串“initial”或“inherit”,您可以检查这两个字符串,如果它们都出错,则可能是
未定义的

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

尽管使用
==
不会有什么区别,但引擎不应该在这里进行自动转换吗?顺便说一句:IE版本8和更低版本不支持
不透明度

我发现
不透明度
问题不大,所以我使用了
zIndex

如果
还需要做一些修补的话,我想我会成功的。感谢大家的帮助。

为什么不在
if
语句之前插入
console.log(elem.style.opacity)
查看实际值是什么?既然您正在进行赋值,if(elem.style.opacity=“1”){..}始终为真。这就是您的代码所说的吗?在第二条语句中,您将elem.style.opacity设置为1。看起来您缺少了一个=符号。第二个语句只是一个示例,说明了如何使其工作,这些点与代码的其余部分类似@我不知道那东西的存在。我要试试,这是个误会,先生。我输入该代码是为了说,如果我按照您引用的方式声明if,那么代码的第一部分才起作用。它是。。。。与代码的其余部分相似您有=还是=?第一个是赋值,第二个是比较。如果我使用(正确)=,那么它甚至不会进入选择。我尝试将其作为字符串处理,因此我将其置于“之间”,但仍然不起作用。