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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

+ 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