2015-04-07 4 views
6

a dire il vero, sono un po 'disperato..scroll() posizionamento flickering in google chrome dopo il suo ultimo aggiornamento

Dopo il mio browser Google Chrome aggiornato - da quello che penso dalla versione 39 alla 41 - uno dei miei siti Web dei clienti è completamente sfigurato in Chrome.

Potete vedere qui: http://prinovis-media-day.com/

Se si scorre verso il basso, tutti gli »« elementi di parallasse sono tremolanti. Ho controllato sul mio macbook su Versione 39 - E 'assolutamente bene nella versione 39.

In sostanza, quello che sto facendo per creare questo effetto è molto semplice:

$("window").scroll(function(){ 

    var move_value = Math.round(scroll_top * 0.3); 
    var opacity_value = *some other value*; 

    $(".parallax-container__content").css({ 

     'opacity': opacity_value, 
     'padding-top': move_value +'px' 

    }); 

}); 

Qualcuno sa che cosa c'é? Ha funzionato come un fascino prima di questo aggiornamento ...

Grazie mille in anticipo, ho davvero apprezzato qualsiasi risposta!

+2

È sempre possibile memorizzare nella cache l'elemento $ (". Parallax-container__content") in una variabile in modo che non lo recuperi ogni volta che viene attivato l'evento di scorrimento e anche per il valore di opacità (a meno che non sia dinamico cambiando a seconda di scroll_tp. Ciò potrebbe causare lo script per accelerare e aiutare la jank che sta accadendo –

+1

FYI: Funziona bene sul mio "Chrome 40.0.2214.115 m" – OddDev

+0

Si potrebbe provare ad aggiungere una "transizione" al CSS del " .prallax-container_content ". http://www.w3schools.com/css/css3_transitions.asp – OddDev

risposta

1

Spostare i miei commenti ad essere una risposta:

Si può sempre memorizzare nella cache il $ ("parallax-container__content") elemento in una variabile in modo che non sta recuperando su ogni volta che il rotolo evento viene generato, e questo vale anche per il valore di opacità troppo (a meno che dinamicamente cambia a seconda scroll_tp. in questo modo potrebbe causare lo script per accelerare e aiutare il Jank che sta accadendo

Se è ancora davvero notevole , quindi è possibile utilizzare il rilevamento delle funzioni per rilevare se le trasformazioni CSS sono supportate nel browser e l'utente 'transform: translate' invece di modificare il valore 'top'. Se è non supportato, quindi tornare indietro a cambiare il 'top'. Cambiando il 'top' provoca un repaint nel browser mentre 'translate' no. Questo repaint è piuttosto costoso per il browser e può causare jank su macchine. modernizr.com può aiutarti con il rilevamento della funzione , ma è potenzialmente eccessivo per la semplice assistenza nella situazione .

Date un'occhiata a questo per la rilevazione di stili cetain sono supportati: http://lea.verou.me/2009/02/check-if-a-css-property-is-supported/

questo è il modo più semplice per controllare (ricordarsi di tenere conto di prefissi vendor).