【发布时间】:2015-10-24 01:06:55
【问题描述】:
好的,现在情况是这样,我正在开发一个 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语句之前插入console.log(elem.style.opacity)以查看实际值是多少? -
if(elem.style.opacity ="1"){....} 始终为真,因为您正在进行分配。你的代码真的是这样说的吗?
-
在第二个语句中,您将 elem.style.opacity 设置为 1。看起来您缺少一个 = 符号。
-
第二个语句只是我如何使它工作的一个例子,点类似于代码的其余部分。 @pointy我不知道那个东西存在。试试看。
标签: javascript jquery html css iframe