2014-02-21 3 views
0

Я не могу заставить это работать правильно, только одно действие стреляет. Любые другие способы написать это?jQuery if else наверху страницы

$(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 достигнуто или нет? Я имею в виду вашу проблему с использованием функции перехода() или ELSE? –

+0

Что вы подразумеваете под словом «только одно действие стреляет»? – Fresheyeball

+0

кажется, что только что-то говорит об увольнении. Когда я возвращаюсь в начало страницы, он не переходит обратно к исходному размеру, который является оператором if. – Hector

ответ

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

Как шарм, спасибо! – Hector