好的,现在情况是这样的,我正在开发一个 css3 滑入滑出菜单系统。
我不得不使用 JavaScript,所以我投入其中。菜单是这样工作的:
主页我有一个包含很多子 div(视频)和偷偷摸摸的隐藏 iframe 的 div,现在当有人访问我网站上的其他页面时,主 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"){....}
将始终计算为真,因为“1”是假的,或者不是零。它会将值“1”分配给 elem.style.opacity。
if(elem.style.opacity=="1"){....}
如果 elem.style.opacity 为“1”,则为真,并且不会更改 elem.style.opacity 的值。
关于Javascript,代码在应该为真时跳入if else语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33313480/