la parallaxe défilement question - élément div secousses lors du défilement dans les navigateurs webkit

J'ai créé une parallaxe défilement, ce qui semble fonctionner correctement dans firefox, cependant dans le navigateur google chrome, il y a un petit saut sur le corps de texte lors du défilement. cliquez ici faites défiler jusqu'à la section à propos. Je ne suis pas sûr si ce est un css ou JS en question.. ci-dessous est un extrait de j'ai incorporé dans mon parallaxe fonction

Personne ne sait comment je résoudre ce problème?

$(document).ready(function(){
//Cache the Window object
$window = $(window);
//Cache the Y offset and the speed of each sprite
$('[data-type]').each(function() {  
$(this).data('offsetY', parseInt($(this).attr('data-offsetY')));
$(this).data('Xposition', $(this).attr('data-Xposition'));
$(this).data('speed', $(this).attr('data-speed'));
});
//For each element that has a data-type attribute
$('[data-type="background"]').each(function(){
//Store some variables based on where we are
var $self = $(this),
offsetCoords = $self.offset(),
topOffset = offsetCoords.top;
//When the window is scrolled...
$(window).scroll(function() {
//If this section is in view
if ( ($window.scrollTop() + $window.height()) > (topOffset) &&
( (topOffset + $self.height()) > $window.scrollTop() ) ) {
//Scroll the background at var speed
//the yPos is a negative value because we're scrolling it UP!                              
var yPos = -($window.scrollTop() / $self.data('speed')); 
//If this element has a Y offset then add it on
if ($self.data('offsetY')) {
yPos += $self.data('offsetY');
}
//Put together our final background position
var coords = '50% '+ yPos + 'px';
//Move the background
$self.css({ backgroundPosition: coords });
$('[data-type="scroll-text"]', $self).each(function() {
var $text= $(this);
var pos = ($window.scrollTop()/10) * $text.data('speed');
var curP = $text.css('margin-top'); 
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
if(is_chrome) {
$text.animate({
paddingTop: pos,
}, 200, 'linear', function() {
//Animation complete.
});
} else {
$text.css('padding-top', pos);
}
}); 
}; //in view
}); //window scroll
}); //each data-type
}); //document ready
  • Votre code devrait bénéficier de simples optimisations: 1) Appel $(window).scrollTop() juste une fois et le cache de la valeur, 2) la Requête de DOM pour la [data-text] éléments à l'extérieur de l'écouteur d'événement.
  • pouvez-vous élaborer sur ce abit, ou même modifier le JS sur github. Je ne suis pas le plus à Javascript
  • pastebin.com/JCaA7T6A
  • avec ce script, j'obtiens le message d'erreur suivant..."Uncaught ReferenceError: $self n'est pas défini"
  • Vous avez besoin d'avoir le $self une variable définie à l'avant de la partie du code que j'ai modifié. Pense un peu.
  • Yup fait qui n'a toujours pas résolu le problème
  • Chose amusante: sur un non maximisée à la fenêtre de Firefox, je peux obtenir ce pour faire défiler pour toujours.
  • je ne comprends pas très bien ce que tu veux dire

InformationsquelleAutor NewBoy | 2012-11-18