Кажется, я не могу работать правильно, только одно действие стреляет. Любые другие способы написать это?
$(window).on('scroll', function() {
var scrollTop = $(this).scrollTop();
if ( scrollTop < 1 ) {
$('#nav-logo').transition({ scale: 1.0, y: 0 });
} else {
$('#nav-logo').transition({ scale: 0.5, y: -126 });
}
});
Проблема заключалась в том, что ваши анимации бегали друг над другом. Вы можете предотвратить это с чем-то вроде этого:
var $nav = $('#nav-logo');
var $window = $(window);
var wasTop = true;
$window.on('scroll', function () {
var isTop = !$window.scrollTop();
if (isTop && !wasTop) {
$nav.stop();
$nav.transition({
scale: 1.0,
y: 0
});
wasTop = true;
} else if (!isTop && wasTop) {
$nav.stop();
$nav.transition({
scale: 0.5,
y: -126
});
wasTop = false;
}
});