2 Stimmen

jQuery .bind(scroll) Funktion funktioniert nicht in Firefox

Neulich habe ich also eine Frage auf Stackoverflow gestellt und Antworten erhalten. Aber anscheinend nach dem Kampf mit all dieser Zeit, bin ich nicht in der Lage, die Auflösung zu finden. Der Code, den ich habe, funktioniert in Chrome und Safari, aber funktioniert nicht in Firefox und IE.

Kann mir jemand sagen, was an diesem Code falsch ist?

$(window).bind('scroll', function() {
        if ($('body').scrollTop() + $(window).height() >= $('#cooler-nav').offset().top){   
        $.colorbox({width:"700px", inline:true, href:"#subscribepop"});
        $(window).unbind('scroll');
        }

});

Grundsätzlich ist das Ziel, diese Colorbox zu starten, sobald der Benutzer die div #cooler-nav sieht...

3voto

PriorityMark Punkte 3217

Das Scroll-Ereignis pflanzt sich nicht im DOM-Baum nach oben fort. Versuchen Sie, die Bindung an den "Körper" scroll, nicht die Windows-Scroll und sehen, ob das behebt es für Sie.

Edita: Ich bin zurückgegangen und habe meinen Code überprüft, wo ich dies in der Vergangenheit tun musste, und habe festgestellt, dass ich es falsch herum gemacht habe. Wenn ich es in der Vergangenheit getan habe, habe ich verwendet $(window).scrollTop() nicht Körper. Damit würde Ihr Code wie folgt aussehen:

$(window).bind('scroll', function() {
  if ($(window).scrollTop() + $(window).height() >= $('#cooler-nav').offset().top){   
    $.colorbox({width:"700px", inline:true, href:"#subscribepop"});
    $(window).unbind('scroll');
  }
});

0voto

Semyazas Punkte 2101

Sie sollten Ihre if-Klausel ändern, um nach scrollTop auf 'body,html' zu suchen, damit es in FF funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X