Как я могу обнаружить, чтобы закончить fadeoutAnim и вызвать функцию? - PullRequest
0 голосов
/ 02 октября 2019

Я использую jquery, и я хочу сделать как тост сообщение.

поэтому, если класс "show" добавится к div, сообщение тоста исчезнет, ​​а через несколько секунд исчезнет.

Мне нужно закончить анимирование исчезновения, удалить класс "show".

Это мой первый код.

var showToast = function(msg) {
     clearTimeout(window.timeoutToast);

     $("toastDiv p").html(msg);
     $("toastDiv").addClass("show");
     window.timeoutToast = setTimeout(function() {
         $("toastDiv").removeClass("show")
     }, 3000);
 };

Я попытался вызвать clearTimeoutFunc и удалить шоу класса. class.

, но если я быстро нажал несколько, то toastMessage исчезло и показалось в мгновение ока ....

Также я попытался $ ("toastDiv"). on ("animationk webkitAnimationEnd oAnimationEnd MSAnimationEnd ", function () {...}), но когда анимированное завершение закончилось, была вызвана функция.

сначала мой HTML-код

<div class="toastDiv">
    <p class="txt_toast">blablabla</p>
</div>

и мой css

.toastDiv.show{
     visibility: visible;
     -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
     animation: fadein 0.5s, fadeout 0.5s 2.5s;
}

исправьте мой код ...

1 Ответ

1 голос
/ 02 октября 2019

Отредактировано только для решения JS:

var showToast = function(msg) {
  clearTimeout(window.timeoutToast);

  $(".toastDiv p").html(msg);
  $(".toastDiv").addClass("show");

  $(".toastDiv").on('animationend', function(event) {
    var animation = event.originalEvent.animationName;
    if (animation === 'fadeout') {
      $(".toastDiv").removeClass("show");
    }
  });
};

showToast('I am toasted!');
@keyframes fadein {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes fadeout {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

.toastDiv {
  visibility: hidden;
}

.toastDiv.show{
     visibility: visible;
     -webkit-animation: fadein 0.5s, fadeout 0.5s 2.5s;
     animation: fadein 0.5s, fadeout 0.5s 2.5s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="toastDiv">
  <p class="txt_toast">blablabla</p>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...