如何 "css3 blink effect" 具有可见性 属性
How to "css3 blink effect" with visibility property
我正试图在某些 DIV 上获得旧的闪烁效果。应该从不可见开始,然后在一段时间内变为可见,然后一遍又一遍地无限闪烁。
CSS 规范说 Visible 是可动画的(我理解这是因为不能有过渡,即淡入和淡出,只是眨眼。这就是我想要的)。
但是,我的代码不起作用。 DIVS 始终可见,不闪烁,不闪烁..
关于为什么会发生这种情况的任何提示?
<style type="text/css">
.shape{
width:36px;
height:36px;
position:absolute;
border-radius:18px;
box-shadow: 0px 0px 5px 5px rgba(217, 215, 30, 0.5);
visibility:visible;
}
.star-anim1 {
animation-name:blink;
animation-direction:normal;
animation-delay:5sg;
animation-duration:5s;
animation-iteration-count:infinite;
}
.star1{
top:80px;
left:60px;
}
.star2{
right:30px;
top:60px;
}
@keyframes blink{
from{
visibility:hidden;
}
to{
visibility:visible;
}
}
</style>
</head>
<body>
<div class="container" style="position:relative;">
<div class="star-anim1 shape star1"></div>
<div class="star-anim1 shape star2"></div>
</div>
为了使用动画,了解您的 vendor prefixes 效果非常重要。
div{
-webkit-animation: blink 1s step-end infinite;
animation: blink 1s step-end infinite;
}
@keyframes blink {
0% {display: blue}
50% {background-color: transparent;color:transparent;}
}
@-webkit-keyframes blink {
0% {background-color: blue}
50% {background-color: transparent;color:transparent;}
}
<div>hello!!!!!!</div>
您的 CSS 动画指定从隐藏到可见的第一个从 0% 到 50% 的过渡,根据上面的规则显示元素,然后您指定从 50% 到 100% 从可见的过渡隐藏,播放时也会显示该元素。因此该元素永久可见。
通过指定
@keyframes toggle {
from {
visibility:hidden;
}
50% {
visibility:hidden;
}
to {
visibility:visible;
}
}
该元素将隐藏到 50%,然后突然出现。要在最后隐藏它,您需要将 visibility:hidden 添加到主要样式 sheet 规则而不是关键帧。
.blink_me {
background: red;
height: 200px;
width: 200px;
-webkit-animation-name: toggle;
-webkit-animation-duration: 5s;
-webkit-animation-timing-function: linear;
-webkit-animation-iteration-count: infinite;
-moz-animation-name: toggle;
-moz-animation-duration: 5s;
-moz-animation-timing-function: linear;
-moz-animation-iteration-count: infinite;
animation-name: toggle;
animation-duration: 5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@keyframes toggle {
from {
visibility:hidden;
}
50% {
visibility:hidden;
}
to {
visibility:visible;
}
}
@-webkit-keyframes toggle {
from {
visibility:hidden;
}
50% {
visibility:hidden;
}
to {
visibility:visible;
}
}
<div class="blink_me">everyday i'm toggling!</div>
我正试图在某些 DIV 上获得旧的闪烁效果。应该从不可见开始,然后在一段时间内变为可见,然后一遍又一遍地无限闪烁。 CSS 规范说 Visible 是可动画的(我理解这是因为不能有过渡,即淡入和淡出,只是眨眼。这就是我想要的)。
但是,我的代码不起作用。 DIVS 始终可见,不闪烁,不闪烁..
关于为什么会发生这种情况的任何提示?
<style type="text/css">
.shape{
width:36px;
height:36px;
position:absolute;
border-radius:18px;
box-shadow: 0px 0px 5px 5px rgba(217, 215, 30, 0.5);
visibility:visible;
}
.star-anim1 {
animation-name:blink;
animation-direction:normal;
animation-delay:5sg;
animation-duration:5s;
animation-iteration-count:infinite;
}
.star1{
top:80px;
left:60px;
}
.star2{
right:30px;
top:60px;
}
@keyframes blink{
from{
visibility:hidden;
}
to{
visibility:visible;
}
}
</style>
</head>
<body>
<div class="container" style="position:relative;">
<div class="star-anim1 shape star1"></div>
<div class="star-anim1 shape star2"></div>
</div>
为了使用动画,了解您的 vendor prefixes 效果非常重要。
div{
-webkit-animation: blink 1s step-end infinite;
animation: blink 1s step-end infinite;
}
@keyframes blink {
0% {display: blue}
50% {background-color: transparent;color:transparent;}
}
@-webkit-keyframes blink {
0% {background-color: blue}
50% {background-color: transparent;color:transparent;}
}
<div>hello!!!!!!</div>
您的 CSS 动画指定从隐藏到可见的第一个从 0% 到 50% 的过渡,根据上面的规则显示元素,然后您指定从 50% 到 100% 从可见的过渡隐藏,播放时也会显示该元素。因此该元素永久可见。
通过指定
@keyframes toggle {
from {
visibility:hidden;
}
50% {
visibility:hidden;
}
to {
visibility:visible;
}
}
该元素将隐藏到 50%,然后突然出现。要在最后隐藏它,您需要将 visibility:hidden 添加到主要样式 sheet 规则而不是关键帧。
.blink_me {
background: red;
height: 200px;
width: 200px;
-webkit-animation-name: toggle;
-webkit-animation-duration: 5s;
-webkit-animation-timing-function: linear;
-webkit-animation-iteration-count: infinite;
-moz-animation-name: toggle;
-moz-animation-duration: 5s;
-moz-animation-timing-function: linear;
-moz-animation-iteration-count: infinite;
animation-name: toggle;
animation-duration: 5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@keyframes toggle {
from {
visibility:hidden;
}
50% {
visibility:hidden;
}
to {
visibility:visible;
}
}
@-webkit-keyframes toggle {
from {
visibility:hidden;
}
50% {
visibility:hidden;
}
to {
visibility:visible;
}
}
<div class="blink_me">everyday i'm toggling!</div>