Страницы

Поиск по вопросам

четверг, 9 января 2020 г.

Последовательная задержка на Sass для дочерних элементов?

#html #css #sass #scss


Всем привет! Как с помощью Sass создать из этого более изящное решение для последовательного
увеличения transition-delay у дочерних элементов?

Вот, чтобы как в примере ZOE - последовательно показывались иконки соц.сетей.
Пример - пункт Zoe.

.myClass {
  &:nth-child(1) {
    transition: all 1s ease-out 0.5s;
  }
  &:nth-child(2) {
    transition: all 1s ease-out 0.7s;
  }
  &:nth-child(3) {
    transition: all 1s ease-out 0.9s;
  }
  &:nth-child(4) {
    transition: all 1s ease-out 1.1s;
  }
  &:nth-child(5) {
    transition: all 1s ease-out 1.3s;
  }
}

    


Ответы

Ответ 1



В Sass существует директива управления - @for. Её можно использовать для таких задач. (Рабочий пример на Codepen.io). Sass: //Создаём переменные для управления значениями $items: 4 $transition: 500ms //Каждому элементу будет прибавлять по 0.060s @for $i from 0 through $items &:nth-child(#{$i + 1}) transition-delay: $transition+(60ms*($i)) Компилированная версия: * { margin: 0; padding: 0; } .wrapper { width: 100%; display: flex; justify-content: center; align-items: center; } .wrapper:hover .item { transform: translateY(50px); background-color: crimson; } .item { width: 100px; height: 100px; background-color: tomato; transition: 500ms; } .item:nth-child(1) { transition-delay: 500ms; } .item:nth-child(2) { transition-delay: 560ms; } .item:nth-child(3) { transition-delay: 620ms; } .item:nth-child(4) { transition-delay: 680ms; } .item:nth-child(5) { transition-delay: 740ms; }


Комментариев нет:

Отправить комментарий