目前,我有这样的代码:
@-webkit-keyframes blinker {
from { opacity: 1.0; }
to { opacity: 0.0; }
}
.waitingForConnection {
-webkit-animation-name: blinker;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: cubic-bezier(.5, 0, 1, 1);
-webkit-animation-duration: 1.7s;
}
它会眨,但只会“朝一个方向”眨。我的意思是,它只是淡出,然后它以不透明度:1.0再次出现,然后再次淡出,再次出现,如此循环……
我想让它淡出,然后从这个淡出再次“提升”到不透明度:1.0。这可能吗?
我的解决方案:
.blink {
动画:blinkMe 2s线性无限;
}
@keyframes blinkMe {
0% {
透明度:0;
}
50% {
透明度:1;
}
100% {
透明度:0;
}
}
< p class = "眨眼”>眨眼< / p >
我使用blinkMe作为动画的名称,2s作为持续时间,线性的时间,无限的,这样它就会永远重复。
我们需要使用JavaScript和jQuery的旧浏览器,因为他们不支持动画和/或@keyframes:
$(文档)时函数(){
setinterval(函数(){
$ (" .blink ") .fadeIn (1000) .fadeOut (1000);
},2000)
});
< script src = " https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js " > < /脚本>
< p class = "眨眼”>眨眼< / p >
如果你想做一个闪烁效果,就像闪烁标签一样,这将会起作用:
.blink {
动画:眨眼0.5s步启动无限;
}
@keyframes blink {
0% {
透明度:1;
}
50% {
透明度:0;
}
100% {
透明度:1;
}
}
< p class = "眨眼”>眨眼< / p >
如果您想调整速度,请更改持续时间。
你首先设置不透明度:1;然后在0处结束,所以它从0%开始,到100%结束,所以把不透明度设置为0,也就是50%剩下的会自动完成。
Demo
.blink_me {
动画:眨眼1s线性无限;
}
@keyframes blinker {
50% {
透明度:0;
}
}
<div class="blink_me">BLINK ME</div>
在这里,我将动画持续时间设置为1秒,然后将计时设置为线性。这意味着它始终是不变的。最后,我用的是无限。这意味着它会一直持续下去。
注意:如果这对您不起作用,请使用浏览器前缀,如
-webkit, -moz等根据需要进行动画和
@keyframes。您可以在这里参考我的详细代码
如上所述,这在旧版本的ie浏览器上行不通,为此你需要使用jQuery或JavaScript…
(function blink() {
$('.blink_me').fadeOut(500).fadeIn(500, blink);
})();
感谢Alnitak提出了一个更好的方法。
演示(Blinker使用jQuery)