【发布时间】:2013-10-25 17:17:58
【问题描述】:
我有一个名为“登录”的部分和一个名为“注册”的部分。 当它们的不透明度发生变化时,我想要一个需要 0.3 秒的线性过渡。
CSS:
#login{
opacity: 0;
transition:opacity 0.3s linear;}
#register{
opacity: 0;
display: none;
transition:opacity 0.3s linear;}
当您进入主页HERE 并点击“查询”时,
#login 的不透明度变为 1。过渡效果很好!
当您点击登录表单下方的“oder registriere dich neu”时,
登录部分再次获得opacity: 0 - 然后获得display: none。
这也适用于过渡。
但是而不是将 REGISTER-Section 放到 display: block 然后 opacity: 1 (在 500 毫秒的 setTimeout 之后。)
这没有过渡!为什么?
当我点击“Hast du schon einen Account?”时再次(返回登录),
注册块将再次完美地淡出过渡,登录表单再次出现没有过渡?
这是设置不透明度的 Javascript 代码:
function changeSection(IDOut, IDIn)
{
var IDOut = "#" + IDOut;
var IDIn = "#" + IDIn;
hideSection(IDOut);
showSection(IDIn);
}
function hideSection(IDOut)
{
$(IDOut).css({opacity: "0"});
setTimeout(function(){
$(IDOut).css({display: "none"});
},500);
}
function showSection(IDIn)
{
setTimeout(function(){
$(IDIn).css({display: "block"});
$(IDIn).css({opacity: "1"});
},500);
}
IDOut 是部分,我想淡出(witch 非常适合登录和注册)。
IDIn 是分区,我要淡入(女巫不要工作来登录和注册)!
为什么转换对 IDIn 不起作用? 有什么想法吗?
【问题讨论】:
-
请给我们一个 jsfiddle 以便我们编辑!
-
不管怎样,你可以试试把
$(IDIn).css({display:'block'});放到setTimeout之外。 -
在 setTimeout 之外也不起作用。我试着把它放在jsfiddle上,等一下。
-
对不起,我是 jsfiddle 的新手,整个网站都无法正常工作。把我放在问题中的网站链接,你可以用我认为的 google-chrome 和 firefox 来查看和编辑源代码!
-
我覆盖了
showSection,但它可以工作......
标签: javascript jquery css transition