JQuery, если еще вверху страницы

0

Кажется, я не могу работать правильно, только одно действие стреляет. Любые другие способы написать это?

$(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 });
        }

    });
  • 1
    достигнуто утверждение ELSE или нет? Я имею в виду, ваша проблема с использованием transition () или оператора ELSE?
  • 0
    что вы подразумеваете под "только одно действие стреляет"?
Показать ещё 6 комментариев
Теги:
scrolltop

1 ответ

1
Лучший ответ

Проблема заключалась в том, что ваши анимации бегали друг над другом. Вы можете предотвратить это с чем-то вроде этого:

JSFiddle

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;
    }
});
  • 0
    Как очарование, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню