2016-05-19 4 views
0

Ich möchte unten etwas erreichen wie in der Grafik: enter image description hereÄnderung divs Opazität in verschiedenen Bereichen onscroll

Ich kann einfach nicht machen diese Arbeit mit diesem Code. https://jsfiddle.net/3vy66a7o/

$(window).on('scroll', function() { 
    $('.object').each(function() { 
    var offset = $(this).offset().top; 
    var height = $(this).outerHeight(); 
    offset = offset + height/2; 

    if (offset < 100) { 
    $(this).fadeTo("fast", 0); 
    } else if ((offset > 200) && (offset < 300)) { 
    $(this).css("opacity": "1"); 
    } else if (offset > 300) { 
    $(this).fadeTo('fast', 1); 
    } 
else { 
    $(this).css("opacity": "0"); 
} 
}); 
}); 
+0

anfügen jquery Bibliothek in Ihrer Geige – Rikin

+0

es ist beigefügt! – user4075462

+0

Keine Antwort, aber Sie könnten diesen Code mit einer 'switch' Anweisung viel aufräumen, anstatt alle' else if''s. (Persönliche Präferenz, aber ich denke, es würde sauberer aussehen) – DBS

Antwort

1

Detect die Elementposition auf Fenster und entsprechend handeln.

var offset = $(this).offset().top - $(window).scrollTop(); 

Siehe https://jsfiddle.net/3vy66a7o/3/

War dies der Effekt, den Sie gesucht haben?

+0

das ist schon sehr nah nur die Glätte des Effektes fehlt. Vielen Dank – user4075462