我正在 CSS 中制作一个模态弹出窗口,它将在单击链接后出现并向下翻译 (translateY)。我的问题是弹出窗口确实出现了,但它已经处于下行状态。我知道如何在悬停时进行翻译,但我不知道如何在没有悬停的情况下进行翻译。谁能给我一些建议?
HTML
<a href='#A'>Open</a>
<div id='A' class='B'>
<div class='C'>
Test</div>
</div>
CSS
.B {
position:fixed;
top:0px;
right:0px;
bottom:0px;
left:0px;
background:rgba(0,0,0,0.8);
opacity:0;
z-index:99999;
pointer-events:none;
}
.B:target {
opacity:1;
pointer-events:auto;
}
.B > .C {
width:100px;
height:100px;
background:#FFF;
background:-moz-linear-gradient(#FFF, #999);
background:-webkit-linear-gradient(#FFF, #999);
background:-o-linear-gradient(#FFF, #999);
-webkit-border-radius:15px;
-moz-border-radius:15px;
-ms-border-radius:15px;
-o-border-radius:15px;
border-radius:15px;
position:relative;
}
.C {
-webkit-transition: all 1s ease-out;
-moz-transition: all 1s ease-out;
-ms-transition: all 1s ease-out;
-o-transition: all 1s ease-out;
transition: all 1s ease-out;
-webkit-transform: translate(0px, 50px);
-moz-transform: translate(0px, 50px);
-o-transform: translate(0px, 50px);
-ms-transform: translate(0px, 50px);
transform: translate(0px, 50px);
}
JSFiddle http://jsfiddle.net/M5tcL/16/
最佳答案
CSS 过渡使属性值的更改对查看者来说显得平滑(补间?)。
您永远不会在此处更改 css 属性的值,因此没有任何动画。
必须有两个具有不同值的 css 状态。您需要 javascript 或复选框才能完成这项工作。
例如,您可以使用 javascript 在 body 元素上切换类,或 a checkbox with an associated label .
然后就可以使用了
/* Normal state */
.C{
opacity: 0;
transition: all .3s;
}
/* Open state */
:checked ~ .C,
/* OR */
body.open .C{
opacity: 1;
}
在此代码段示例中,不透明度将在 0 和 1 之间变化时生成动画。
关于CSS 正常翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23746872/