JeuWeb - Crée ton jeu par navigateur
[jQuery/css] incrémenté une seule des deux valeurs du bg-position? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [jQuery/css] incrémenté une seule des deux valeurs du bg-position? (/showthread.php?tid=6734)



[jQuery/css] incrémenté une seule des deux valeurs du bg-position? - Argorate - 25-03-2013

Bonjour,

pour mes sprites et animations, j'aurais besoin de pouvoir changer dynamiquement le bg-position en ajoutant ou soustrayant la valeur déjà présente.

Le $(elt).css('background-position', '+=10') ne permet pas de changer qu'un seul des deux chiffres qui définit la position.

Y a t-il un moyen plus élégant/rapide que de faire un split sur l'espace entre les deux positions récupéré via $(elt).css('background-position') //qui retourne "10px 10px" par exemple
puis incrémenter que celle que je veux, puis de reconcaténer les deux et enfin faire la modif $(elt).css('background-position', maChaineDesDeuxValeursReconcaténé)...?

thx.


RE: [jQuery/css] incrémenté une seule des deux valeurs du bg-position? - niahoo - 25-03-2013

Tu peux garder les valeurs left et top dans des variables javascript. Quand tu veux changer la position tu appelles une fonction qui mets à jour ces deux variables puis qui met à jour la vue.

N'oublie pas que le CSS et le HTML sont des vues. La tu essaie de récupérer depuis ta vue une donnée que tu as toi même fixé précédemment. La vue ne devrait récupérer que des données utilisateur et des events.


RE: [jQuery/css] incrémenté une seule des deux valeurs du bg-position? - Xenos - 25-03-2013

Pas mieux que Niahoo (donc tout pareil que lui).


RE: [jQuery/css] incrémenté une seule des deux valeurs du bg-position? - Argorate - 25-03-2013

Oui mais non,

en fait le truc c'est que j'ai des skins différents sur un sprite.
au position X1, X2, X3 (que j'ai défini dans un css)

et pour l'animation de mouvement, je sais que je dois déplacer le sprite de +X, mais +X à partir du X du skin courant.
J'aimerais éviter de devoir allonger mon css en mettant toutes les combinaisons du sprite, alors que comme je viens de le dire, une addition suffit normalement.

je sais pas si c'est très clair?


RE: [jQuery/css] incrémenté une seule des deux valeurs du bg-position? - niahoo - 25-03-2013

Si, c'est clair. Ce qui l'est moins, c'est pourquoi notre réponse ne te suffit pas.


RE: [jQuery/css] incrémenté une seule des deux valeurs du bg-position? - Argorate - 25-03-2013

Je voulais juste savoir s'il existait pas un truc plus simple que de devoir gérer sois même des variables sup, mais sinon ça marche oui.


RE: [jQuery/css] incrémenté une seule des deux valeurs du bg-position? - Xenos - 25-03-2013

Je connais pas de méthode du type "background-position-x+=10", je ne pense pas que ce soit dans les specs.


RE: [jQuery/css] incrémenté une seule des deux valeurs du bg-position? - Argorate - 25-03-2013

oui j'ai regardé, c réservé à IE à la base le bg-position-x/y, ce qui est bien con car ça serait pas mal d'avoir deux attributs en fin de compte...