Сброс каскадной задержки анимации в новом разделе или классе .mySection CSS jQuery - PullRequest
0 голосов
/ 25 марта 2020

Цель:

  1. Добавить задержку каскадного перехода для каждого .myClass в пределах родительского элемента .mySection
  2. Если на странице существует несколько родителей, задержка перехода должна начинаться с 0.

Цель:

Чтобы применить один кусок стиля по всему сайту , поэтому каждая анимация в разделе будет воспроизводиться одна за другой в том порядке, в котором они отображаются внутри HTML в хронологическом порядке (сверху вниз) независимо от других вложений, без необходимости добавлять много грязных исправлений .

Проблема:

CSS: Использование nth-child(x) родительского div div breaks требуемый порядок, как только целевой класс будет вложен в новых родителей , преждевременно сбрасывающих задержку.

jQuery: Использование jQuery для выбора каждого .myClass в пределах .mySection задержка анимации не сбрасывается, и каскад продолжается по всей странице.

Как я могу сделать это, чтобы каскадная задержка y сбрасывается с каждым новым .mySection?

Пример фрагмента: я включил обе проблемы для демонстрации

  • CSS демо выпуска .myClass & .mySection
  • jQuery демоверсия выпуска .myClass2 & .mySection2

$(".mySection2 .myClass2").each(function(index) {
  $(this).css({
    'animation-delay': 1 * (1 + index) + 's'
  });
});
body {
  color: #fff;
  font-size: 20px;
  text-align: center;
}

@keyframes FadeIn {
  0% {
    opacity: 0;
    transform: scale(.1);
  }
  85% {
    opacity: 1;
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

section {
  width: 100%;
  clear: both;
}

.mySection div {
  float: left;
  margin: 10px;
  height: 100px;
  width: 100px;
  animation: FadeIn 1s linear;
  animation-fill-mode: both;
}

.mySection2 div {
  float: left;
  margin: 10px;
  height: 100px;
  width: 100px;
  animation: FadeIn 1s linear;
  animation-fill-mode: both;
}

.red div {
  background: red;
}

.blue div {
  background: blue;
}

.green div {
  background: green;
}

.pink div {
  background: pink;
}

.mySection .myClass:nth-child(1) {
  animation-delay: .5s
}

.mySection .myClass:nth-child(2) {
  animation-delay: 1s
}

.mySection .myClass:nth-child(3) {
  animation-delay: 1.5s
}

.mySection .myClass:nth-child(4) {
  animation-delay: 2s
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section class="mySection blue">
  <div class="myClass">1</div>
  <div class="myClass">2</div>
  <div class="myClass">3</div>
  <div class="myClass">4</div>
</section>

<section class="mySection red">
  <div class="myClass">1</div>
  <span><div class="myClass">2</div></span>
  <span><div class="myClass">3</div></span>
  <div class="myClass">4</div>
</section>

<section class="mySection2 green">
  <div class="myClass2">1</div>
  <div class="myClass2">2</div>
  <div class="myClass2">3</div>
  <div class="myClass2">4</div>
</section>

<section class="mySection2 pink">
  <div class="myClass2">1</div>
  <span><div class="myClass2">2</div></span>
  <span><div class="myClass2">3</div></span>
  <div class="myClass2">4</div>
</section>

Источники:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...