2013-10-10 18 views
6

ho un margine negativo su un div, ma voglio cambiare il margine negativo sul rotolo fino al negativo raggiunge lo 0.cambiamento margin-top sul rotolo

da:

margin:-150px 0 0 0; 

a: (a scorrimento)

margin:0px 0 0 0; 

penso che sia una sorta di effetto di parallasse, dove i 'M alla ricerca di e ho trovato questo su StackOverflow: Change margin top of div based on window scroll

ho pensato a qualcosa di simile ma ci deve essere qualcosa di più facile

$(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'}); } 
}); 

-

ho creato un violino con il base html/css

fiddle: http://jsfiddle.net/qSe4e/

-

grazie mille in anticipo

+0

@FDL vedo solo il mio violino, non la vostra cambiato uno :) –

+1

Ci dispiace, ma aggiornato - http://jsfiddle.net/qSe4e/9/ o forse http: //jsfiddle.net/qSe4e/11/ – naththedeveloper

+0

@FDL il primo ha fatto il trucco, fantastico! vuoi metterlo come risposta in modo che possa essere la risposta giusta? :) –

risposta

7

Provare a usare un po 'di matematica per generare automaticamente tutte le possibilità (simili al tuo tentativo ma con una sola riga invece di una per ogni possibilità.

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

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

buona soluzione fratello – Rex

1

fare in questo modo

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

Demo Fiddle

+0

grazie, è in quella direzione, ma mi piacerebbe che se galleggiasse delicatamente, ho modificato la mia domanda con le mie scoperte, forse che racconta la storia un po 'meglio –

+0

@ErwinvanEkeren controlla la risposta aggiornata, se vuoi più lento, aumenta il tempo valore – Rex

+0

Rex, questo ha funzionato bene come la soluzione di FDL, la soluzione di FDL si è adattata un po 'di più a quello che stavo cercando, ma voglio ringraziarvi molto per il vostro aiuto! –

Problemi correlati