Javascript时,代码跳转到if-else语句中;这应该是真的
好的,现在情况是这样的,我正在开发一个css3滑入和滑出菜单系统 我不得不使用JavaScript,所以我开始使用它。这是菜单的工作原理: 主页我有一个div,里面有很多子div(视频)和一个隐藏的iframe,现在当有人访问我网站上的另一个页面时,主div会转到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
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,那么代码的第一部分才起作用。它是。。。。与代码的其余部分相似您有=还是=?第一个是赋值,第二个是比较。如果我使用(正确)=,那么它甚至不会进入选择。我尝试将其作为字符串处理,因此我将其置于“之间”,但仍然不起作用。