display: none;
からdisplay: block
にアニメーション化する目的で、不透明度が0から1に変化する非常に基本的なHTMLがあります。
Chromeブラウザーを使用しています。このブラウザーは、-webkit
プレフィックスを優先として使用し、-webkit-keyframes
遷移セットを使用してアニメーションを可能にしました。 display
をフェードなしで変更するだけです。
JSFiddle here があります。
<html>
<head>
<style type="text/css">
#myDiv
{
display: none;
opacity: 0;
padding: 5px;
color: #600;
background-color: #CEC;
-webkit-transition: 350ms display-none-transition;
}
#parent:hover>#myDiv
{
opacity: 1;
display: block;
}
#parent
{
background-color: #000;
color: #FFF;
width: 500px;
height: 500px;
padding: 5px;
}
@-webkit-keyframes display-none-transition
{
0% {
display: none;
opacity: 0;
}
1%
{
display: block;
opacity: 0;
}
100%
{
display: block;
opacity: 1;
}
}
</style>
<body>
<div id="parent">
Hover on me...
<div id="myDiv">
Hello!
</div>
</div>
</body>
</head>
</html>
@keyframes
を使用している場合は、-webkit-animation
の代わりに-webkit-transition
を使用する必要があります。 @keyframes
アニメーションのドキュメントは次のとおりです。 https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using_CSS_animations 。
以下のコードスニペットを参照してください。
.parent {
background-color: #000;
color: #fff;
width: 500px;
height: 500px;
padding: 5px;
}
.myDiv {
display: none;
opacity: 0;
padding: 5px;
color: #600;
background-color: #cec;
}
.parent:hover .myDiv {
display: block;
opacity: 1;
/* "both" tells the browser to use the above opacity
at the end of the animation (best practice) */
-webkit-animation: display-none-transition 1s both;
animation: display-none-transition 1s both;
}
@-webkit-keyframes display-none-transition {
0% {
opacity: 0;
}
}
@keyframes display-none-transition {
0% {
opacity: 0;
}
}
<div class="parent">
Hover on me...
<div class="myDiv">Hello!</div>
</div>
今日のベストプラクティスを反映するために、アニメーションではなくトランジションを使用します。更新されたコードは次のとおりです。
.parent {
background-color: #000;
color: #fff;
width: 500px;
height: 500px;
padding: 5px;
}
.myDiv {
opacity: 0;
padding: 5px;
color: #600;
background-color: #cec;
-webkit-transition: opacity 1s;
transition: opacity 1s;
}
.parent:hover .myDiv {
opacity: 1;
}
<div class="parent">
Hover on me...
<div class="myDiv">Hello!</div>
</div>
display
は、CSSトランジションまたはアニメーションでは機能しません。
opacity
、visibility
、またはz-index
を使用します。それらをすべて組み合わせることができます。
visibility: visible
をdisplay: block
に、visibility: hidden
をdisplay: none
に配置してください。
そして最後に、例えばz-index: -1
とz-index: 100
を組み合わせます。
よくできました ;)
display
プロパティをアニメーション化することはできません。 visibility: hidden
からvisibility: visible
で試すことができます
単にposition: fixed
とドロップz-index: -5
の最後に@keyframe
アニメーション(負のインデックスを作成できます。..
CSS:
@keyframes fadeOut {
0% { opacity: 1
}
99% {
opacity: 0;
z-index: 1;
}
100%{
opacity: 0;
display:none;
position: fixed;
z-index: -5;
}
}
JavaScriptを使用して、表示プロパティとアニメーションの両方を変更できます。 @keyframes
にディスプレイを配置することはできません。
要素display:none
から始めます。次に、display:block
クラスとanimation:*
クラスを同時に追加します。
ここに実例があります アニメーションのイン/アウトあり。