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

jQuery Discussion :

Encore et toujours souci de transparence avec IE


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut Encore et toujours souci de transparence avec IE
    Bonjour tout le monde,

    Je viens de rencontrer un problème avec IE8 que j'ai essayé de simplifier au maximum pour vous le soumettre.

    J'utilise jQuery 1.6.2.

    J'ai un plugin foo() qui prend le texte de l'élément pour l'encadrer par des spans, puis qui masque ces spans avec l'opacité à 0.

    Je précise que c'est une version très (très) simplifiée de ce que je cherche à faire et que j'ai besoin des spans et de l'opacité.

    Ceci fonctionne très bien sous FF mais IE 8 refuse de me masquer ce texte.

    Voici l'exemple complet qui permet de tester :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans nom</title>
    <script type="text/javascript" src="../scripts/jquery/jquery-1.6.1.min.js"></script>
    <script type="text/javascript">
    (function($) {
    	$.fn.foo = function() {
    		var texte = $(this).html();
    		texte = "<span>"+texte+"</span>";
    		$(this).html(texte);
     
    		$('span').css('opacity','0');
     
    	};
     
    })(jQuery);
     
     
    $(document).ready(function(){
    	$('p').foo();
    });
    </script>
     
    </head>
     
    <body>
    	<p>IE SUCKS</p>
    </body>
    </html>
    Comment contourner ceci ?
    Je ne veux pas de visibility:hidden ou de display:none.

  2. #2
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var texte = $(this).html();
    texte = "<span>"+texte+"</span>";
    $(this).html(texte);
    Je te conseillerais plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var texte = $(this).html();
    texte.wrap('span');
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    Merci, j'en prends note.
    Je débute avec jQuery depuis une semaine, je n'ai pas encore les bons réflexes.
    Ceci dit, ça ne change rien à mon problème

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    Pas essayé mais je pense que ça vient de la propriété "opacity" qui n'est pas "compris" par IE.

    CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .test{
        opacity: 0;
        -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; // IE8
         filter: alpha(opacity=0); // Autre IE
    }
    Plugin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $.fn.foo = function() {         
        var texte = $(this).html();        
        texte = "<span>"+texte+"</span>";         
        $(this).html(texte);           
        $('span').addClass('test');     
    };

  5. #5
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    jQuery gère lui-même l'affectation de l'opacité en fonction du navigateur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var texte = $(this).html();
    texte.wrap('span');
    $(this).find('span').css({opacity: 0});
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    Sauf que dans ce cas ça ne marche pas.
    Je viens de me rendre compte que l'opacité ne fonctionne pas avec les élements inline dans IE.

    J'ai donc du bidouiller un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    span {
      display:block;
      float:left;
    }
    pour que ça marche.

    Mais je ne suis, mais alors pas du tout satisfait de cette solution.

    pour résumer encore plus le problème voici un autre fichier de test qui ne marche pas alors qu'il devrait :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>IE really sux !</title>
    <script type="text/javascript" src="../scripts/jquery/jquery-1.6.1.min.js"></script>
    <script type="text/javascript">
     
    	$(document).ready(function(){
    		$('span').css('opacity','0');
    	});
    </script>
     
    </head>
     
    <body>
    	<p><span>IE SUX</span></p>
    </body>
    </html>
    Il semble donc que même jquery ne sache pas mettre l'opacité sur des éléments inline dans IE.

    Est-ce impossible ?

Discussions similaires

  1. [Batch] Encore et toujours un soucis avec ce FOR ^^
    Par devilsnake88 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 27/01/2014, 20h57
  2. [MySQL] Encore et toujours un pb avec include en fonction de la langue du nav !
    Par naivenu dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/06/2008, 23h37
  3. Alpha transparence encore et toujours
    Par Sébastien P dans le forum OpenGL
    Réponses: 5
    Dernier message: 01/06/2007, 21h50
  4. [ASP/Flash] Toujours soucis avec sauts de ligne :(
    Par delavega dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 15/12/2006, 18h31
  5. probleme de transparence avec fog
    Par Daedar dans le forum OpenGL
    Réponses: 10
    Dernier message: 03/05/2004, 08h14

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