#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; }
Комментариев нет:
Отправить комментарий