2016-03-28 15 views
1

Ich mag ein Kreis div im Header sperren, wenn der Benutzer scrollt in., wenn das Fenster gescrollt letztes Element

Ich verwende den folgenden Code, aber es funktioniert nicht

var circle$ = $('.circle'), 
    oCircleBottom = circle$.offset().top + circle$.outerHeight(true), 
    window$ = $(window); 

window$.scroll(function() { 
    if (window$.scrollTop() > oCircleBottom) { 

    } 
}.bind(this)); 

Ich möchte eine Aktion ausführen, wenn der Benutzer scrollt das Kreisdiv übergeben; Der obige Code scheint jedoch nicht zu funktionieren. Wird oCircleBottom korrekt berechnet?

+0

[Überprüfen Sie diese auf, wie div fixiert machen nach dem Scrollen] (http://stackoverflow.com/questions/15850271/how-to-make-div-fixed-after-you-scroll-to- that-div) – TheUknown

+0

Ich brauche, wie man an der div scroll –

+0

Was meinst du mit scrollen vorbei? Können Sie erklären? Ihre Frage lautet: "Ich möchte, dass ein Kreis-Div in der Kopfzeile gesperrt wird, wenn der Benutzer vorbei scrollt." oder vielmehr, welche Aktion soll ich durchführen, wenn der Benutzer daran vorbei scrollt? – TheUknown

Antwort

0

Schliessen Sie Ihren Code in $ (document) .ready Funktion

$(document).ready(function() { 
    var circle$ = $('.circle'), 
    oCircleBottom = circle$.offset().top + circle$.outerHeight(true), 
    window$ = $(window); 

    window$.scroll(function() { 
    if (window$.scrollTop() > oCircleBottom) { 
     $('.circle').css({      
      position: 'fixed', 
      top: '0', 
      left: '0' 
     }); 
    } 
    else{ 
       $('.circle').css({      
       position: 'static'}); 
    } 
    }.bind(this)); 

}); 
0

Sie benötigen Fensterhöhe zu berücksichtigen, denn wenn die Höhe der Seite ist nicht genug, um nach unten zu scrollen, Ihr Code funktioniert nicht. Werfen Sie einen Blick auf this example

Wenn jedoch die Seitenhöhe erhöhen, funktionieren Sie Code ohne Subtrahieren der Fensterhöhe. Werfen Sie einen Blick auf this example

Daher ist es besser, die Fensterhöhe zu subtrahieren. jsFiddle

$(window).bind('scroll', function() { 

    if($(window).scrollTop() >= $('.circle').offset().top + $('.circle').innerHeight() - window.innerHeight) { 
     //Do you stuff 
    } 
}); 
Verwandte Themen