• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

addClass und delay

Tobi44

Mitglied
Hallo,

ich nutze folgendes Script, um eine Seitennavigation am oberen Seitenrand einzublenden, wenn der Besucher so weit in die Ergebnisse gescrollt hat, dass die normale Seitennavigation nicht mehr sichtbar ist. Ich möchte nun aber, dass diese nicht direkt kommt, wenn man die feste Seitennavigation aus dem sichtbaren Bereich scrollt, sondern dass sie erst nach 1.5 Sekunden ins Bild rutscht.

Ich habe bereits ein .delay(1500) vor das addClass gesetzt, allerdings ist die Navi immer gleich da...

Code:
$(window).load(function () {
  var top = $('.pag1').offset().top - parseFloat($('.pag1').css('marginTop').replace(/auto/, 0));
  $(window).scroll(function (event) {
    var y = $(this).scrollTop();
    if (y >= top) {
      $('.pag1').addClass('fixed');
    } else {
      $('.pag1').removeClass('fixed');
    }
  });
});

Was habe ich hier wieder nicht verstanden?

Danke.
 
Werbung:
Moin,
das geht zumindest mit setTimeout.

HTML:
...
if (y >= top) {
  setTimeout(
  function()
  {
  $('.pag1').addClass('fixed');
  }, 1500);
  } else {
...

MfG
 
Danke. Ich glaube aber, ich muss noch nach einer Möglichkeit suchen, die Navigation nach einer kurzen Zeit sanft einzublenden und nicht mit einem Schlag reinzuhauen.
Das genannte Beispiel funktioniert gut.

Danke & Gruß
 
Werbung:
Moin,
mit fadeIn()? Dann evtl. so

HTML:
$(window).load(function () {
  var top = $('.pag1').offset().top - parseFloat($('.pag1').css('marginTop').replace(/auto/, 0));
  var faded = false;
  $(window).scroll(function (event) {
    var y = $(this).scrollTop();
    if (y >= top) {
      if (!faded) {
        faded = true;
        $('.pag1').hide().addClass('fixed').fadeIn(1500);
        }
    } else {
      $('.pag1').removeClass('fixed');
      faded = false;
    }
  });
});

MfG
 
Moin,
mit fadeIn()? Dann evtl. so

HTML:
$(window).load(function () {
  var top = $('.pag1').offset().top - parseFloat($('.pag1').css('marginTop').replace(/auto/, 0));
  var faded = false;
  $(window).scroll(function (event) {
    var y = $(this).scrollTop();
    if (y >= top) {
      if (!faded) {
        faded = true;
        $('.pag1').hide().addClass('fixed').fadeIn(1500);
        }
    } else {
      $('.pag1').removeClass('fixed');
      faded = false;
    }
  });
});

MfG

Ein addClass schreit mMn geradezu nach transitions.
 
Werbung:
Zurück
Oben