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 :

IE9 et Diaporama en Javascript


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut IE9 et Diaporama en Javascript
    Bonjour a vous tous,
    je suis en train de développez un site web et j'ai fait un diaporama en JavaScript.
    Sous Firefox j'ai aucun soucis mais sur IE, le diaporama est comme figé.

    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
    function voirImage(num, total, pct)
    	{
    	  var prec=document.getElementById((num+total-1)%total) ;
    	  var nouv=document.getElementById(num) ;
     
    	  if (pct<0)
    	  {
    		nouv.style.opacity=0 ;
    		nouv.style.display='' ;
    		prec.style.opacity=1;
    		nouv.style.filter = 'alpha(opacity=0)';
    		prec.style.filter = 'alpha(opacity=1)';
    		window.setTimeout(function(){ voirImage(num,total,0)}, 10);		
    	  }
    	  else
    	  if (pct<100)
    	  {
    		prec.style.opacity=(100-pct)/100 ;
    		nouv.style.opacity=pct/100 ;
    		nouv.style.filter = 'alpha(opacity=pct/100)';
    		prec.style.filter = 'alpha(opacity=(100-pct)/100)';
    		window.setTimeout(function(){ voirImage(num,total,pct+1)}, 10);
    	  }
    	  else
    	  {
    		prec.style.opacity=0 ;
    		prec.style.display='none' ;
    		nouv.style.opacity=1 ;
    		nouv.style.filter = 'alpha(opacity=1)';
    		prec.style.filter = 'alpha(opacity=0)';
    		window.setTimeout(function() {voirImage((num+1)%total,total,-1)}, 2000);
     
    	  }
    	}
     
    	window.setTimeout(function(){voirImage(0,14,-1)}, 10);
    Pourriez vous m'aidez a résoudre ce problème?

    Merci d'avance

  2. #2
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    fais une recherche sur ce forum avec "crossbrowser opacity" ...
    http://dmouronval.developpez.com/tut...s/fading1.html

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prec.style.filter = 'alpha(opacity=1)';
    En mettant 100 à la place de 1, ça devrait être mieux !

  4. #4
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Oui, et il faudrait faire cela aussi...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    nouv.style.filter = 'alpha(opacity='+pct+')';
    prec.style.filter = 'alpha(opacity='+100-pct+')';
    Pour que ce soit encore plus mieux de chez mieux.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Ca marche toujours pas

  6. #6
    Invité
    Invité(e)
    Par défaut
    ie 9 supporte opacity donc pas besoin de passer par les filtrers fait un teste sans filter pour voir ce que sa donne car c'est peut ca qui bloque
    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
     
    function voirImage(num, total, pct)
    	{
    	  var prec=document.getElementById((num+total-1)%total) ;
    	  var nouv=document.getElementById(num) ;
     
    	  if (pct<0)
    	  {
    		nouv.style.opacity=0 ;
    		nouv.style.display='' ;
    		prec.style.opacity=1;
    		window.setTimeout(function(){ voirImage(num,total,0)}, 10);		
    	  }
    	  else
    	  if (pct<100)
    	  {
    		prec.style.opacity=(100-pct)/100 ;
    		nouv.style.opacity=pct/100 ;
    		window.setTimeout(function(){ voirImage(num,total,pct+1)}, 10);
    	  }
    	  else
    	  {
    		prec.style.opacity=0 ;
    		prec.style.display='none' ;
    		nouv.style.opacity=1 ;
    		window.setTimeout(function() {voirImage((num+1)%total,total,-1)}, 2000);
     
    	  }
    	}
     
    	window.setTimeout(function(){voirImage(0,14,-1)}, 10);

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Desolé Mekal mais ça marche toujours pas sur IE

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Citation Envoyé par mekal Voir le message
    ie 9 supporte opacity donc pas besoin de passer par les filtrers
    Quand bien même, mais si tu n'utilise pas filter cela fera un code non fonctionnel pour les utilisateurs des versions antérieures à IE9, et à mon avis tu ferais bien de consulter les pourcentages d'utilisation des différents navigateurs avant de les considérer comme quantité négligeable

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Je ne comprend pas ABCIWEB.
    tu pourrais m'expliquer ?

  10. #10
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Peut-être en respectant un certain ordre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    elementHTML.style.filter='alpha(opacity=50)';	// IE < 9 d'abord
    elementHTML.style.opacity=0.5;			// Standard ensuite
    Etant sous XP et donc n'ayant pas droit à IE9, je ne peux pas tester personnellement.

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ce que veut dire ABCIWEB (et je suis plutôt d'accord avec lui) c'est que si IE9 supporte la propriété CSS opacity, cela n'est pas vrai pour les versions antérieures de IE, dont la proportion ne peut pas encore être considérée comme négligeable, il est donc important d'utiliser aussi les filters de IE.

  12. #12
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Eric2a
    Peut-être en respectant un certain ordre ?
    Le préférable est en fait de tester la fonctionnalité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(elementHTML.style.opacity){
        elementHTML.style.opacity = ...
    }
    else{
        elementHTML.style.filter = ...
    }

  13. #13
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par ABCIWEB
    si tu n'utilise pas filter cela fera un code non fonctionnel pour les utilisateurs des versions antérieures à IE9
    +1
    Citation Envoyé par Bovino
    il est donc important d'utiliser aussi les filters de IE.
    +1

    Citation Envoyé par Bovino
    Le préférable est en fait de tester la fonctionnalité
    Oui c'est juste

    En fait, l'ordre peut être nécessaire lors de l'écriture de la règle en pure CSS et non en Javascript.

  14. #14
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Eric2a
    En fait, l'ordre peut être nécessaire lors de l'écriture de la règle en pure CSS et non en Javascript.
    Oui, mais pas que
    Si tu regardes bien, l'ordre est important dans le code que j'ai mis en exemple, parce que si tu testes d'abord la disponibilité de filters, alors IE9 (qui reconnait la propriété opacity), passera dans le if et non dans le else, donc le principe reste valable

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    D'accord. Donc je dois prendre compte du fait que IE8 n'utilise pas les mêmes propriétés pour faire jouer l'opacité.

    Je sais que je vous en demande trop (je suis débutant en javascript ) mais pourriez vous m'aider a refaire le code en m'expliquant correctement ce que fait le code?
    Le code que j'utilise je le comprend mais vous voulez faire des
    elementHTML.style.opacity = ...
    et des
    elementHTML.style.filter= ...

    Est ce correcte sur tous les navigateurs ? Comment faire pour modifier les valeur des 2 images vu qu'on recupere pas l'id de l'image ?

    Merci beaucoup de votre aide

  16. #16
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    L'idéal est donc de créer la fonction qui va définir l'opacité de l'élement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function setOpacity(obj,opacity){
    	if(obj.style.opacity)
    		obj.style.opacity=opacity;
    	else
    		obj.style.filter='alpha(opacity='+opacity*100+')';
    }
    obj correspond à l'Id de l'élement concerné et opacity correspond à l'opacité (0 <= opacity <= 1).

    Nous l'appelons ensuite comme ceci...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setOpacity(prec, (100-pct)/100);
    setOpacity(nouv, pct/100);
    Citation Envoyé par Bovino
    Si tu regardes bien, l'ordre est important dans le code que j'ai mis en exemple...
    Juste encore comme d'hab.

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Citation Envoyé par Raf38690 Voir le message
    Je ne comprend pas ABCIWEB.
    tu pourrais m'expliquer ?
    Bovino t'a donné l'explication. Si tu veux une estimation chiffrée regarde ici

  18. #18
    Invité
    Invité(e)
    Par défaut
    Quand bien même, mais si tu n'utilise pas filter cela fera un code non fonctionnel pour les utilisateurs des versions antérieures à IE9
    je le sait bien mais la on est dans un contexte de teste pour ie 9

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Ca ne marche toujours pas

  20. #20
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par Raf38690
    Ca ne marche toujours pas
    C'est le message d'erreur renvoyé par IE9 ou bien ton inconscient ne désire pas qu'on t'aide ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. 3 diaporamas automatiques javascript sur la meme page web
    Par zabandi dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/09/2012, 13h49
  2. diaporama en javascript
    Par tang le breton dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 02/04/2009, 15h03
  3. Diaporama en Javascript: afficher le nom du fichier
    Par Irlandais dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 30/01/2008, 07h54
  4. Diaporama images Javascript
    Par FujitSiem dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/11/2007, 08h51
  5. Diaporama en javascript
    Par Alien41 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/03/2007, 21h45

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