IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

firefox et setInterval()


Sujet :

JavaScript

  1. #1
    Membre très actif Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 728
    Par défaut firefox et setInterval()
    Bonjour,

    Dans le script suivant le setInterval() ne fonctionne pas (ligne 29):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    function getMousePosition(event){	
    				var e = event || window.event;	
    				var scroll = new Array((document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft,(document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop);;	
    				return new Array(e.clientX + scroll[0] - document.body.clientLeft,e.clientY + scroll[1] - document.body.clientTop);
    			}
     
     
     
    			function bouge_barre_vign(direction){
    				alert('test');				
    			}
     
     
     
    			function anime_barre_vign(){
     
    				var barre_vign = document.getElementById('barre_defil_vign');
    				var menu1 = document.getElementById('menu1');
     
    				barre_vign.onmouseover = function(event){	
     
    					var mousePosition = getMousePosition(event);
    					var barre_vign = document.getElementById('barre_defil_vign');					
    					//document.getElementById('test').innerHTML = 'x:'+mousePosition[0]+ '__' + barre_vign.offsetWidth+ '__' + mousePosition[0]/menu1.offsetWidth;
    					if(barre_vign.offsetWidth > document.getElementById('menu1').offsetWidth){
     
    						if(mousePosition[0]/menu1.offsetWidth > 0.9){ // si la souris se retrouve à lextreme-droite de la barre des vignettes et que celle ci peut encore se déplacer vers la droite
     
    							timer = setInterval("bouge_barre_vign('gauche')",25);
    							//Math.round((barre_vign.offsetWidth + barre_vign.offsetLeft - menu1.offsetWidth)/300
    						}else if(mousePosition[0]/menu1.offsetWidth < 0.1){
    							//barre_vign.style.left = barre_vign.offsetLeft + 10 + 'px';
    													}else{
    							if(typeof(timer)!="undefined"){
    								clearInterval(timer);
    							}
    						}
     
    					}
    				};
     
    				barre_vign.onmouseout = function(event){
    					if(typeof(timer)!="undefined"){
    						clearInterval(timer);
    					}
    				}
     
    			}
    Alors qu'il fonctionne si je le met en amont de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    barre_vign.onmouseover = function(event){
    Pourriez-vous svp me mettre sur la voie ?

    Merci

  2. #2
    Membre très actif Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 728
    Par défaut
    En fait le pb vient de la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(barre_vign.offsetWidth > document.getElementById('menu1').offsetWidth){
    IE prend bien en compte que barre_vign.offsetWidth > à la largeur de la fenetre (menu1.offsetWidth est au max). Alors que Firefox limite un div plus large que la fenetre à une largeur de fenetre.

    En fait ce script sert a faire défiler des vignettes a l'horizontale.

    Comment trouver la bonne propriété dans firefox qui indique la largeur dun div (celui contenant les vignettes) même si celle ci est plus large que la fenetre svp ?

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    pas seulement...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    timer = setInterval("bouge_barre_vign('gauche')",25);


    pour passer des paramètres à une fonction en setInterval il faut passer par une closure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    timer = setInterval( function(){bouge_barre_vign("gauche")},25);
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre très actif Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 728
    Par défaut
    Bonjour,

    Pourtant le setInterval marche bien. Comment celà se fait-il ?

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    tu es sur que le paramètre est passé ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre très actif Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 728
    Par défaut
    Oui , mais après coup j'ai adapté ta syntaxe, ça ne coute rien

  7. #7
    Membre très actif Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 728
    Par défaut
    Bon j'ai réglé mon problème d'obtention de la largeur du div des vignettes, en utilisant les largeurs des vignettes, leur nombre et les marges entre vignettes.
    tout simplement.

    Les navigateur pourrais quand même utiliser un language javascript universel
    Ca ne nous facilite pas la taches ! grrrr

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    là ça relève plus d'un souci d'uniformité de css que de js
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre très actif Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 728
    Par défaut
    ah oui exact le javascript va chercher les propriétés css d'un div

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 18
    Dernier message: 19/08/2004, 15h11
  2. [XML][XSL][Mozilla Firefox] Integraton dans une page JSP
    Par BANATACH dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 05/08/2004, 14h46
  3. Java ne fonctionne pas sous Firefox
    Par Info-Rital dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 29/07/2004, 23h37
  4. [flash MX] probleme avec setinterval et clearinterval
    Par yacinechaouche dans le forum Flash
    Réponses: 3
    Dernier message: 15/04/2004, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo