Hej chciałem sobie zrobić efekt easings na navbarze mam tylko problem, bo nie działa to do końca
http://dukov.pl/testphp/ < strona funkcja się wywołuje oczywiście window.onscroll czasami zmienia swoje opacity i się zwija / rozwija, czasem nie.

  1. function scrollFunc(e) {
  2. var nav = document.getElementById('header');
  3. var how = (function(){
  4. var x = document.getElementById('header');
  5. if (x.currentStyle)
  6. var y = x.currentStyle['height'];
  7. else if (window.getComputedStyle)
  8. var y = document.defaultView.getComputedStyle(x,null).getPropertyValue('height');
  9. return y;
  10.  
  11. }());
  12. console.log(how);
  13. var hvalue = parseFloat(how);
  14. console.log('Noooo: '+hvalue);
  15. console.log('offset to: ' + window.pageYOffset);
  16. if (hvalue >100 && window.pageYOffset > 150) {
  17.  
  18. $("nav").animate({
  19.      
  20.         opacity: '0.5',
  21.         height: '70px'
  22.       
  23.     });
  24. }
  25.  
  26. else if (hvalue < 100 && window.pageYOffset < 250) {
  27. $("nav").animate({
  28.      
  29.         opacity: '1',
  30. height: '150px'
  31.       
  32.       
  33.     });
  34. }
  35. }
  36.  
  37. window.onscroll = scrollFunc;


Tu jest kod odpowiadający za ten efekt. jak widzicie navbar powinien się zwijać gdy przesuwam stronę, offset jest w górnych okolicach, a element nav ma wysokość większą niż 100px, rozwijać się to odwrotnie. Zmienne z warunków są pokazywane w konsoli, więc wiem, że warunki są spełnione, a funkcja wywołana, szkoda, że raz działa, raz nie działa.

EDIT
Zauważyłem, że kod działa, tylko wykonuje się gdy warunek jest spełniony, po kolejnym przesunięcią rolką i po opóźnieniu ok 1 sekundy, a to jest niedopuszczalne.