CSS不显示任何动画,并且关键帧不透明
我有一段非常基本的HTML,其目的是使动画从display: none;
变为display: block
不透明,从0变为1。
我使用的是Chrome浏览器,该浏览器使用-webkit
前缀作为首选项,并进行了-webkit-
keyframes过渡设置以使动画成为可能。但是,它不起作用,只是在display
不褪色的情况下进行了更改。
我有一个JSFiddle 。
<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。
请参见下面的代码段:
.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>
以上是 CSS不显示任何动画,并且关键帧不透明 的全部内容, 来源链接: utcz.com/qa/402773.html