2011-12-27 12 views
13

Sto cercando di capire come rendere più lento lo scorrimento dell'immagine di sfondo rispetto al contenuto della pagina. Non ho idea di come sia fatto. L'esempio perfetto di ciò che sto cercando di fare is hereSfondo a scorrimento lento in Javascript o CSS?

Questo è fatto in CSS o jQuery/Javascript?

+2

Questa volta si chiamava parallasse lo scrolling indietro quando ero bambino e desideravo creare giochi. Sembra che ci siano alcune risorse che usano lo stesso termine là fuori (ad esempio, quando si effettua il googlling 'jquery parallasse scrolling') –

+5

Javascript. Significativamente più semplice con jQuery, ma richiede anche speciali marcatori HTML/CSS. Esempio fresco e semplice su http://inner.geek.nz/javascript/parallax/. Si potrebbe anche solo google 'scrolling parallasse'. – Edwin

+0

@Edwin: Grazie per aver indicato il nome corretto. –

risposta

15

Ciò è reso da JavaScript (jQuery):

(function() { 
    var a = document.body, 
     e = document.documentElement; 
    $(window).unbind("scroll").scroll(function() { 
     a.style.backgroundPosition = "0px " + -(Math.max(e.scrollTop, a.scrollTop)/8) + "px"; 
    }); 
})(); 
+0

Oh capisco com'è fatto !. –

+0

Questo è brillante! Ricordati di averlo messo a fine pagina o quando si usa jQuery con la funzione 'ready'. Lo sfondo dovrebbe avere "posizione: fissa" –

0

L'effetto sul link che hai postato è fatto in JavaScript utilizzando jQuery.

Se si esamina il codice di uno script del sito here, si possono trovare:

.style.backgroundPosition="0px "+-(Math.max(e.scrollTop,a.scrollTop)/8)+"px" 

In pratica, la proprietà background-position CSS viene modificata a pagina scorrimento calcolo Y a seconda della posizione della pagina di scorrimento . Se hai una certa conoscenza di Javascript, jQuery o Mootools, puoi riprodurre l'effetto molto facilmente.

Penso che sia impossibile farlo utilizzando solo CSS.

0

Questo funziona per immagini di alta bg.

(function() { 
     var body = document.body, 
       e = document.documentElement, 
       scrollPercent; 
     $(window).unbind("scroll").scroll(function() { 
      scrollPercent = 100 * $(window).scrollTop()/($(document).height() - $(window).height()); 
      body.style.backgroundPosition = "0px " + scrollPercent + "%"; 
     }); 
})(); 
Problemi correlati