jQuery sur de défilement de la fenêtre d'animer l'image de fond de position
Je suis en train de réaliser un effet de défilement à l'aide de jQuery. J'ai un arrière-plan div à 100% la taille de la fenêtre du navigateur avec trop-plein caché. Cela a une grande image de fond qui est d'environ. 1500px x 2000px.
L'effet que je veux, c'est quand l'utilisateur fait défiler la page, l'image de fond se déplace à un pourcentage de la volutes de la distance, donc pour tous les 200px défile en bas de la page, l'image se déplace 10px dans la même direction.
Quelqu'un peut me pointer dans la bonne direction? Est-ce même possible? : ) Merci beaucoup à l'avance.
Mise à JOUR
Depuis, j'ai essayé de variations sur la suggestion de @Capt Otis mais je suis toujours en difficulté le code je joue est comme suit:
$(window).scroll(function(){
if($(this).scrollTop() > 200) {
$('#div').animate({'background-postion': '+=10px 0'}, 500);
}
});
Quelqu'un peut nous donner un indice sur ce que je fais de mal?
Vous devez vous connecter pour publier un commentaire.
Ici vous allez. Arrière-plan est fixé à 10% de défilement. Vous pouvez modifier la vitesse de défilement de fond en changeant le 10 dans le code.
CSS
JavaScript
Vérifier exemple de travail à http://jsfiddle.net/Vbtts/
Cliquez sur ce lien pour le plein écran exemple: http://jsfiddle.net/Vbtts/embedded/result/
body, html{height:100%; min-height:100%;}
pas juste le corps. Check it out ici jsfiddle.net/HFxVj/2Cela a fonctionné pour moi:
En js:
En css:
Où #principal est la div dont l'image de fond, je voulais déménager. Pas besoin d'avoir de la hauteur: 100% pour le html, le corps.
C'est une variante de plusieurs images d'arrière-plan.
Si vous ne voulez pas être pressé avec le fond de la div, voici mon code, je l'ai enveloppé par plusieurs exemples:
Les Mathématiques.max est requis pour la croix-les problèmes de navigateur. Également remplacer "1920" avec la largeur de votre image d'arrière-plan
Cela pourrait le faire:
Look ici pour voir un exemple de la façon dont beaucoup de l'utilisateur est déjà sur la page. Voir la
$(this).scrollTop()
?Plutôt que de référencement $(this), essayez en utilisant le fond de la div. Ensuite, utilisez un .fonction de défilement afin de déterminer combien de déplacer l'arrière-plan.
Votre code devrait ressembler à quelque chose comme ceci:
Je ne pense pas que vous pouvez utiliser += ou -= quand vous avez les deux pièces dans le CSS.
Il y a quelque chose que vous pouvez faire, c'est un peu délicat, mais il fonctionne:
Ce code devient seulement le deuxième numéro de la background-position de la div (position haute), la convertit en int, et l'augmente de 10. Puis il anime la div à la nouvelle position.