Background-position en Javascript ?

Résolu/Fermé
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - Modifié par Kopros le 22/10/2010 à 23:37
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - 23 oct. 2010 à 01:05
Salut à tous,

Alors voilà, pour mon site j'ai une image dont je change la position pour donner un effet de mouvement au passage de la souris. Ca marche très bien en CSS :

#IDimage{  
    background:url("images/monimage.png") 0 0 no-repeat;  
}  

#IDimage:hover,#IDimage:active,#IDimage:focus{  
 background-position:0 -27px;  
}

(IDimage est l'id donné à une balise <a>)

Et à certaines pages je bloque la position avec cette ligne :

#IDimage{background-position:0 -27px;}


Je veux avoir le même résultat que cette dernière ligne, mais en javascript et non en css, c'est pour faire un truc avec de l'AJAX.

Seulement, je ne trouve pas comment faire pour mettre des coordonnées dans un backgroundPosition en javascript.

J'ai fait cette ligne :
document.getElementById('IDimage').style.backgroundPosition="0px -27px;"


et cette ligne en question fait arrêter le script. (là j'ai mis les coordonnées pour tester, ça marche pas non plus quand je mets les données que je transferts, évidemment).

D'où ma question : est-ce que quelqu'un sait comment faire passer des coordonnées en js dans un backgroundPosition ? (ou existe-t-il une autre façon de faire ?)

Merci d'avance


A voir également:

2 réponses

Dj Nam Messages postés 327 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 31 janvier 2014 41
Modifié par Dj Nam le 22/10/2010 à 23:40
Bonjour,
As-tu essayé sans le ; à la fin et il me semble aussi, sans les unités :
document.getElementById('IDimage').style.backgroundPosition="0 -27";

Maxime
0
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 89
22 oct. 2010 à 23:51
Je viens de réaliser une petite série de tests avec toutes les possibilités pour les unités et le ; à la fin, sans résultat.

En fait, la fonction est appelée par une autre fonction (AJAX) qui elle est appelée à un événement (onclick).
Le truc, c'est que l'image fait partie d'un menu. Quand on passe la souris, c'est le CSS qui s'occupe de changer la position (ça, ça marche). Mais quand on est dans une rubrique de ce menu, le changement de position est maintenu pour que le visiteur voit dans quelle rubrique il se trouve.

Et donc si je fais tout en CSS, pas de problème. Mais là je suis en train d'essayer de faire en sorte qu'on puisse naviguer sans recharger toute la page, juste le texte qui change. C'est là que j'utilise l'AJAX.

Alors tout le reste fonctionne, y'a que ma ligne avec ce backgroundPosition qui pose problème.

Si tu veux je donne mon code, mais y'en a un paquet...
0
Kopros Messages postés 595 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 89
23 oct. 2010 à 01:05
Problème résolu.

Ca venait du fait que j'appelais un id qui n'était pas chargé, car justement je veux empêcher le chargement des pages.

Il a donc fallu que je fasse un innerHTML avec l'id appelé avant de faire mon backgroundPosition, qui fonctionne bien si je le mets avec cette syntaxe :

document.getElementById('IDimage').style.backgroundPosition='0 -27px';



Fatigue, quand tu nous tiens...
0