2013-10-10 5 views
6

ich habe eine negative Marge auf einem div, aber ich möchte die negative Marge auf Blätter ändern, bis die negativen 0.Änderung margin-top auf Scroll

aus erreicht:

margin:-150px 0 0 0; 

um: (auf scroll)

margin:0px 0 0 0; 

ich denke, es ist eine Art von Parallaxe-Effekt ist, wo i Sind für die Suche und fand diese auf Stackoverflow: Change margin top of div based on window scroll

ich so etwas gedacht, aber es muss sein, etwas leichter

$(window).scroll(function(){ 
if ($(window).scrollTop() >= 1){ $('#three').css({margin:'-149px 0 0 0px'}); } 
if ($(window).scrollTop() >= 2){ $('#three').css({margin:'-148px 0 0 0px'}); } 
if ($(window).scrollTop() >= 3){ $('#three').css({margin:'-147px 0 0 0px'}); } 
if ($(window).scrollTop() >= 4){ $('#three').css({margin:'-146px 0 0 0px'}); } 
else { $('#three').css({margin:'-150px 0 0 0px'}); } 
}); 

- mit dem

ich eine Geige erstellt html/css basis

geige: http://jsfiddle.net/qSe4e/

-

vielen Dank im fortgeschrittenen

+0

@FDL ich nur meine eigene Geige sehen, nicht den veränderten one :) –

+1

Sorry, aktualisiert es - http://jsfiddle.net/qSe4e/9/ oder vielleicht http: //jsfiddle.net/qSe4e/11/ – naththedeveloper

+0

@FDL der erste hat den Trick gemacht, super! Willst du es als Antwort platzieren, damit ich die richtige Antwort geben kann? :) –

Antwort

7

Versuchen Sie, ein wenig Mathematik mit automatisch alle die Erzeugung Möglichkeiten (ähnlich wie bei Ihrem Versuch, aber mit einer einzigen Zeile statt einer für jede Möglichkeit.

Beispiel: http://jsfiddle.net/qSe4e/9/

$(window).scroll(function(){ 
    var fromTop = $(window).scrollTop(); 
    $("#three").css('margin', '-' + (100 - fromTop) + 'px 0px 0px 0px'); 
}); 
+0

gute lösung bro – Rex

1

Machen Sie es wie diese

$(document).scroll(function() { 
$("#three").animate({margin: "0px 0px 0px 0px"}, 3000); 
}); 

Demo Fiddle

+0

danke, es ist in dieser Richtung, aber ich würde gerne, wenn schwimmt sanft, ich edited meine Frage mit meinen eigenen Erkenntnissen, vielleicht erzählt das die Geschichte ein wenig besser –

+0

@ErwinvanEkeren überprüfen Sie die aktualisierte Antwort, wenn Sie langsamer wollen, erhöhen Sie die Zeit Wert – Rex

+0

Rex, dieser funktionierte genauso gut wie die Lösung von FDL, die Lösung von FDL passte ein bisschen mehr zu dem, wonach ich suchte, aber ich möchte Ihnen vielmals für Ihre Hilfe danken! –