Я использую следующий файл CSS, чтобы добавить некоторые анимации на мой сайт, который я создаю: http://www.justinaguilar.com/animations/scrolling.html
Его концепция довольно проста: вы добавляете имена классов в свой div, чтобы они были анимированы, когда вы добираетесь до нее, когда вы прокручиваете страницу вверх/вниз.
Я хочу добавить там настройку, которая добавит небольшую задержку между каждой анимацией. Таким образом, все анимации в одной строке будут появляться один за другим, а не все вместе одновременно.
Моя идея заключалась в том, чтобы добавить имя класса, например: delay-1, и добавит анимированную задержку: 1s; к нему.
Вот живой пример того, что я хочу сделать. Прокрутите вниз и посмотрите, как "наш прогресс" отображает каждую анимацию с задержкой:
http://demo.qodeinteractive.com/river/home-anchors/#home_presentation
Это что-то, что я могу сделать только с CSS3? будет ли ответ "да" или нет, я был бы очень признателен за любую помощь.
попробуйте определить класс следующим образом:
.delay-1 {
animation-delay:1s !important;
-webkit-animation-delay:1s !important;
}
не знаю, будет ли это работать... но стоит попробовать.. да... это сработает - это сработало для меня
Да, переход CSS3 сделает трюк, у меня есть демо-страница, созданная давно. Вы можете обратиться к нему.
Как вы можете видеть, первый элемент имеет задержку в 2 с, а второй элемент не имеет задержки. Удачи
#demo:hover {
width: 300px;
transition-delay: 2s
}
#demo1:hover {
width: 300px;
transition-delay: 0s
}
Вам все равно нужно добавить класс в раздел, когда вы прокручиваете его с помощью Javascript, но вы можете использовать nth-child()
для каждого из них.
Скажем, 4 шага, которые вы могли бы сделать:
.steps .step:nth-child(1) { transition-delay: 1s; }
.steps .step:nth-child(2) { transition-delay: 2s; }
.steps .step:nth-child(3) { transition-delay: 3s; }
.steps .step:nth-child(4) { transition-delay: 4s; }
Хотя, с неизвестным количеством шагов вам лучше с этим справиться, я думаю.
$('.steps .step').each(function(i){
$(this).css('animation-delay', i + 's');
});
Затем .steps
анимацию, добавив класс в .steps
.
.steps .step { trainsition: all 1s; opacity: 0; width: 0;}
.steps.in-view .step { opacity: 1; width: auto; }
Надеюсь, это то, к чему вы стремились.