В настоящее время у меня есть этот код:
@-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;
}
Он мигает, но мигает только в «одном направлении». Я имею в виду, он только исчезает, а затем снова появляется opacity: 1.0
, затем снова исчезает, появляется снова и так далее ...
Я бы хотел, чтобы оно исчезло, а затем снова «поднялось» от этого исчезновения до opacity: 1.0
. Это возможно?
html
css
css-animations
opacity
ojek
источник
источник
Ответы:
Сначала вы устанавливаете,
opacity: 1;
а затем заканчиваете его0
, поэтому он начинается0%
и заканчивается100%
, поэтому вместо этого просто установите непрозрачность на0
at,50%
а остальное позаботится о себе.демонстрация
Здесь я устанавливаю продолжительность анимации , чтобы быть
1 second
, а затем я устанавливаюtiming
вlinear
. Это означает, что оно будет постоянным во всем. Наконец, я используюinfinite
. Это означает, что это будет продолжаться и продолжаться.Как уже отмечалось, это не будет работать на старых версиях Internet Explorer, и для этого вам нужно использовать jQuery или JavaScript ...
Спасибо Alnitak за предложение лучшего подхода .
Демо (Blinker используя jQuery)
источник
blinker
в качестве обратного вызова завершения вызова.fadeIn
.(function blink() { $('.blink_me').fadeOut(500).fadeIn(500, blink); })();
step-end
вместо того,linear
что я хотел.Используйте
alternate
значение дляanimation-direction
(и вам не нужно добавлять кефреймы таким образом).CSS :
Я удалил
from
ключевой кадр. Если он отсутствует, он генерируется из значения, которое вы установили для анимированного свойства (opacity
в данном случае) в элементе, или, если вы его не установили (и у вас его нет), из значения по умолчанию (что1
дляopacity
).И, пожалуйста, не используйте только версию WebKit. Добавьте еще один без префикса. Если вы просто хотите написать меньше кода, используйте сокращение .
источник
cubic-bezier
детальease-in-out
чем-то другим: cubic-bezier.comЛучший способ получить чистое моргание «100%, 100%», например, старый
<blink>
:источник
color
свойством и т. Д. Другие вещи - это обходные пути или «исчезающие» анимации.В качестве альтернативы, если вы не хотите постепенного перехода между показом и скрытием (например, мигание текстового курсора), вы можете использовать что-то вроде:
Каждый
1s
.cursor
пойдет отvisible
доhidden
.Если CSS-анимация не поддерживается (например, в некоторых версиях Safari), вы можете вернуться к этому простому интервалу JS:
Этот простой JavaScript на самом деле очень быстрый и во многих случаях может даже быть лучше по умолчанию, чем CSS. Стоит отметить, что многие вызовы DOM замедляют анимацию JS (например, $ .animate ()) в JQuery.
У него также есть второе преимущество: если вы добавляете
.cursor
элементы позже, они все равно будут анимироваться точно в то же время, что и другие элементы,.cursor
так как состояние является общим, насколько я знаю, это невозможно с помощью CSS.источник
Я не знаю почему, но анимация только
visibility
свойства не работает ни в одном браузере.Что вы можете сделать, так это анимировать
opacity
свойство таким образом, чтобы в браузере не было достаточного количества фреймов для увеличения или уменьшения текста.Пример:
источник
step-start
(см. Мой ответ).Измените продолжительность и непрозрачность, чтобы удовлетворить.
источник
Показать фрагмент кода
источник
Поздно, но хотел добавить новый с большим количеством ключевых кадров ... вот пример на CodePen, так как была проблема со встроенными фрагментами кода:
источник
источник
Это работает для меня, используя class = blink для соответствующего элемента (ов)
Простой код JS
источник