Подтвердить что ты не робот

CSS, как заставить элемент исчезать, а затем исчезать?

Я могу создать элемент с непрозрачностью нулевого затухания, изменив его класс на .elementToFadeInAndOut со следующим css:

.elementToFadeInAndOut {
    opacity: 1;
    transition: opacity 2s linear;
}

Есть ли способ заставить элемент исчезать после того, как он затухает, отредактировав css для этого же класса?

Большое спасибо за ваше время.

4b9b3361

Ответ 1

Используйте css @keyframes

.elementToFadeInAndOut {
    opacity: 1;
    animation: fade 2s linear;
}


@keyframes fade {
  0%,100% { opacity: 0 }
  50% { opacity: 1 }
}

здесь DEMO

.elementToFadeInAndOut {
    width:200px;
    height: 200px;
    background: red;
    -webkit-animation: fadeinout 4s linear forwards;
    animation: fadeinout 4s linear forwards;
}

@-webkit-keyframes fadeinout {
  0%,100% { opacity: 0; }
  50% { opacity: 1; }
}

@keyframes fadeinout {
  0%,100% { opacity: 0; }
  50% { opacity: 1; }
}
<div class=elementToFadeInAndOut></div>

Ответ 2

Если вам нужен один fadeIn/Out без явного действия пользователя (например, mouseover/mouseout), вы можете использовать CSS3 animation: http://codepen.io/anon/pen/bdEpwW

.elementToFadeInAndOut {
    -webkit-animation: fadeinout 4s linear 1 forwards;
    animation: fadeinout 4s linear 1 forwards;
}

@-webkit-keyframes fadeinout {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes fadeinout {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}

Установив animation-fill-mode: forwards, анимация сохранит свой последний ключевой кадр

Установив animation-iteration-count: 1, анимация будет запускаться только один раз (измените это значение, если вам нужно повторить эффект более одного раза)

Ответ 3

Попробуйте следующее:

@keyframes animationName {
  0%   { opacity:0; }
  50%  { opacity:1; }
  100% { opacity:0; }
}
@-o-keyframes animationName{
  0%   { opacity:0; }
  50%  { opacity:1; }
  100% { opacity:0; }
}
@-moz-keyframes animationName{
  0%   { opacity:0; }
  50%  { opacity:1; }
  100% { opacity:0; }
}
@-webkit-keyframes animationName{
  0%   { opacity:0; }
  50%  { opacity:1; }
  100% { opacity:0; }
}   
.elementToFadeInAndOut {
   -webkit-animation: animationName 5s infinite;
   -moz-animation: animationName 5s infinite;
   -o-animation: animationName 5s infinite;
    animation: animationName 5s infinite;
}