好的,现在是情况,我正在使用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"){....}
但我认为这是不对的。
答案 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
仍然需要做一点修补,但我想我能够做到。感谢大家的帮助。