Scroll javascript

Résolu
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 - 27 janv. 2009 à 09:59
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 - 2 févr. 2009 à 14:37
Bonjour,

j'ai fait un petit bout de code javascript pour faire un scroll
horizontal, ce code marche très bien sous firefox mais pose problème
sous IE. Voilà le code :

onmouseover="scroll = setInterval(function() {
if(document.getElementById(\'nomdudiv\').style.marginLeft!=\'-545px\')
{
document.getElementById(\'nomdudiv\').style.marginLeft =( parseInt(document.getElementById(\'nomdudiv\').style.marginLeft) - 5) + \'px\';
}
}
, 50)"
onmouseout="clearInterval(scroll)"

Le problème est que la boucle ne s'arrête jamais, le
clearinterval(scroll) semble ne pas être pris en compte.. J'ai essayé
beaucoup de choses mais n'arrive absolument pas à trouver la cause de
l'erreur, j'espère donc que quelqu'un pourra m'aider à trouver une
solution.

Merci d'avance.

12 réponses

Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014
2 févr. 2009 à 14:37
Pour information j'ai fini par trouvé le problème :

J'avais appelé ma variable "scroll" ce qui ne plaisait apparemment pas du tout à IE, je l'ai renommée et maintenant tout marche très bien.

Mais Bul3 je te remercie encore une fois de ton aide, merci.
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
27 janv. 2009 à 12:01
bonjour,

ben ??? ça fonctionne parfaitement ???

mais comme tu ne nous fournis que peu de chose !
il a fallu que je me tape le html et le reste !
tu aurais au moins pu mettre le div, l'élément qui déclenche !

surtout qu'avec ce que j'ai fais ça marche
et pas chez toi ! donc ça ne correspondra pas !

<script>
    var scroll;
</script>

exemple

Cordialement

[mon Site][M'écrire]Bul
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014
27 janv. 2009 à 14:52
Navré, je pensais que l'erreur se trouvais dans le javascript et donc que lui seul suffirait. Voilà le html qui va avec :

//contenu du div

Voilà, j'espère que quelqu'un pourra m'aider.
Merci Bul3 d'avoir répondu mais je ne comprend vraiment pas pourquoi chez moi cela ne marche pas avec IE, surtout si tu dis que chez toi ça marche, je suis encore plus perdu...
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014
27 janv. 2009 à 14:56
Désolé pour le double post mais le précédent est vraiment illisible, je vous remet le code un peu mieux présenté :

    

    

          //contenu du div
    

    
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
27 janv. 2009 à 16:12
ça ne peut pas marcher !
et ce avec tous les navigateurs !
je ne vois nulle part un élément html
qui a l'ID="nomdudiv"

as-tu essayé mon exemple chez toi ?
s'il fonctionne....
@+
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014
27 janv. 2009 à 16:22
C'est ma faute, je me suis trompé en copiant mon code..

          //contenu du div
    

est en réalité

          //contenu du div
    

Quant à ton code il fonctionne parfaitement, je n'y comprend plus rien..
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
27 janv. 2009 à 16:44
peut-être  tu te mélanges les yeux avec ce que génère le php ( car tu utilises n'est-il pas ? )
1° regarde ( et met nous si nécessaire !!! ), l'extrait de la page html résultante
2° pour plus de clarté ( car je t'avoue que c'est pas terrible de faire
    directement comme tu fais pour la lisibilité  et les \' non plus,
     d'ailleurs inutiles  sauf si php, bonjour... )
    appelle une fonction
    au lieu de onmouseover="scroll = setInterval(function() {....
    fait        onmouseover="traitmt();"...
            et  function traitmt() { scroll = setInterval(function() { ..... } }
3° les valeurs mises ont changées ? 0 au lieu de -545... ?

[mon Site][M'écrire]Bul
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014
27 janv. 2009 à 17:01
D'abord, merci de prendre le temps de me répondre.

Ensuite :
- en effet j'utilise du php, c'est pour ça que j'ai changé le nom des div, pour na pas être embêté avec les variables et tout ça.. Mais il est vrai que tout ça est normalement dans des "echo();" et ce n'est pas toujours évident à gérer.. Pourtant il n'y a pas de problème de guillemets ou autre, quand je regarde le source de la page générée, tout est bon. Je ne peux pas vous le mettre, c'est beaucoup trop imposant.
- les \' sont là à cause du php, j'avoue ne pas avoir pris le temps de les enlever..
- je sais que question lisibilité c'est pas super mais vu que j'ai du mal avec le javascript je préfère faire comme ça dans un premier temps et une fois que ça marche faire de belles fonctions.
- en fait les valeurs n'ont pas changé c'est juste que je vous ai mis l'intégralité du code. En fait j'ai 2 flèches, une de chaque côté du div qui se déplace, une pour aller dans chaque sens. Au début je n'avais mis le code que d'une seule flèche mais comme vous m'en avez demandé plus j'ai ajouté le reste.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
28 janv. 2009 à 10:06
>>quand je regarde le source de la page générée, tout est bon.
sûrement pas... sinon ça fonctionnerait ! non ?
mon exemple ne fonctionne-t-il pas !

>>Je ne peux pas vous le mettre, c'est beaucoup trop imposant.
l'extrait nécessaire pas tout !! surtout pas
la page générée peut-être visualisée, sauvegardée, puis
traitée comme un fichier html normal dont on prend
ce dont on a besoin.

>>en effet j'utilise du php,
au lieu de faire tout dans un echo
echo '

    

';
rien n'empêche, déjà :
?>

     </gras>').style.marginLeft) - 5) + 'px';}}, 50)"
          onmouseout="clearInterval(scroll)">

et comme je disais.... le javascript dans une fonction.

[mon Site][M'écrire]Bul
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014
28 janv. 2009 à 13:33
Alors voilà, j'ai suffit tes conseils :
(Je ne donne le code que d'une seul flèche, c'est pareil de l'autre côté)

Dans mon source j'affiche le code comme cela :
?>
   
').style.marginLeft!='-545px') {document.getElementById('contenu_<?php echo $lig["cat_id"]?>').style.marginLeft = (parseInt(document.getElementById('contenu_<?php echo $lig["cat_id"]?>').style.marginLeft) - 5) + 'px';}}, 50)" onmouseout="clearInterval(scroll)">

<?php

Et voilà ce que je récupère ensuite dans le code source de la page générée :

Ça marche toujours parfaitemen avec firefox mais toujours pas sous IE..
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
28 janv. 2009 à 13:49
bah... je ne sais toujours pas ce qu'est document.getElementById('contenu_camp')
.. et met dans une fonction... peut-être pourras-tu mieux "suivre"
          [mon Site] [M'écrire] Bul         
0
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014
28 janv. 2009 à 14:26
Non mais laisse, je veux pas t'embêter, j'arriverais bien à trouver une solution.

Merci quand même.
0