У меня есть относительно базовый сценарий, где у меня есть nav
HTML-элемент, который может быть расширен (изменяет высоту элемента) на основе пары различных триггеров и скольжения контента вниз по навигации.
Элемент nav
равен position:fixed
и реагирует на стрельбу ребенка .slideDown()
.
У меня есть второй элемент, плавающий слой position:absolute
, значение которого top
css зависит от того, где заканчивается элемент nav
.
Так что нижняя часть nav
= верхняя часть #layer
.
Сложность, с которой я сейчас сталкиваюсь, заключается в прикреплении позиции top
к bottom
контейнера nav
при изменении высоты nav
.
Есть ли что-нибудь, что позволило бы мне сделать это?
У меня есть контроль и перехватывает анимацию и запуск событий, чтобы я мог легко прикрепить функцию к анимации анимации slideDown/Up
, которая изменяет высоту nav
, я просто не могу понять, как я могу запустить функцию для каждого пиксель изменен.
Любые идеи будут высоко оценены.
Спасибо за чтение.
Обновление
Следуя совету, я переписал slideDown
для использования функции animate
, чтобы можно было передать функцию step
следующим образом:
$('.sometrigger').click(function() {
$("nav > ul").animate({
'height':'show'
}, {
duration : 900,
easing : 'linear',
step : function(e) {
console.log('step', $(this).height() );
},
complete : function() {
$('nav').removeClass('closed').addClass('open');
}
});
});
Вот вывод журнала консоли для каждого шага:
step 72
step 96
step 1
step 2
step 3
step 4
step 5
step 7
step 6
step 8
step 7
step 9
step 8
step 11
step 9
step 12
step 11
step 14
step 12
step 15
step 13
step 17
step 14
step 18
step 15
step 20
step 16
step 21
step 17
step 23
step 18
step 24
step 20
step 26
step 21
step 27
step 22
step 29
step 23
step 30
step 24
step 32
step 25
step 33
step 26
step 35
step 27
step 37
step 29
step 38
step 30
step 39
step 31
step 41
step 32
step 42
step 33
step 44
step 34
step 45
step 35
step 47
step 36
step 48
step 37
step 50
step 39
step 51
step 40
step 53
step 41
step 54
step 42
step 56
step 43
step 57
step 44
step 59
step 45
step 60
step 46
step 62
step 47
step 63
step 48
step 65
step 49
step 66
step 51
step 68
step 52
step 69
step 53
step 71
step 54
step 72
step 55
step 74
step 56
step 75
step 57
step 77
step 58
step 78
step 60
step 80
step 61
step 81
step 62
step 82
step 63
step 84
step 64
step 85
step 65
step 87
step 66
step 88
step 67
step 90
step 68
step 91
step 70
step 93
step 71
step 94