11548 sujets

JavaScript, DOM et API Web HTML5

bonjour à tous,

j'ai fait un slider en Js sur mon site. Il marche sous FF, chrome, IE8 mais pas sur les précédente version de IE(à savoir la 7 et la 6)

Par conséquent je decide de mettre un commentaire conditionnel qui dit que si on est sur une version inferieure a IE8, alors mon slider devient uniquement une image.




<div id="slider_home" class="slider">
<ul>
<li><img src="main.jpg" alt="main"/></li>
<li><img src="main2.jpg" alt="main2" /></li>
<li><img src="main3.jpg"  alt="main3"  /></li>       
</ul>
</div>


<!--[if lt IE 8]>
					
<ul>
<li><img src="main.jpg" alt="main"/></li> 
</ul>
                     
<![endif]-->



Mais cela ne marche pas, sous IE7 il m'affiche mes 2 listes...

Donc si certains parmi vous ont une idée...

Merci par avance
C'est étonnant que ton slider ne marche pas dans IE6 et 7. Il y a plein de site où des sliders fonctionnent sur IE6->8. C'est quoi comme script?
Modifié par Patidou (26 Oct 2010 - 15:30)

<script type="text/javascript">

		$(document).ready(function(){	
		
			$("#slider_home").sudoSlider({ 
				prevNext: false,
				numeric:true,
				fade: true,
				pause:4500,
				auto:true,		
				
			});
			("#slider_home").sudoSlider('block'); // Block the slider
		
		});
</script>
j'ai inversé, aulieu de mettre moins que IE8, j'ai mis plus que IE7 et la ça marche bien sous IE 7 et 8 mais plus sur FF....
Alors pour le coup du commentaire conditionnel, ce que tu as fait c'est que tu as défini deux contenus comme ceci:
Ici un contenu HTML qui sera lu par TOUS LES NAVIGATEURS.

<!--[if lt IE 8]>
    Ici un contenu qui sera considéré comme un commentaire par tous
    les navigateurs, SAUF IE 5, 6 et 7.
<![endif]-->

Firefox, Opera, Chrome, Safari, IE8 et IE9 vont donc voir le premier contenu, et considérer le suivant comme un commentaire. Tandis que IE7 et IE6 vont voir le premier contenu aussi, et considérer le deuxième comme un contenu HTML.

Donc ce que tu obtiens est parfaitement logique. Smiley smile

Il y a une autre syntaxe de commentaires conditionnels qui permet de cacher un contenu à des versions d'Internet Explorer. Ça te permettrait effectivement d'avoir un contenu réservé à certaines versions d'IE (commentaire conditionnel classique) et un contenu pour tous les autres navigateurs (commentaire conditionnel avec syntaxe alternative). Mais c'est vraiment une manière peu élégante de résoudre tes problèmes, qui sont à priori des problèmes de rendu CSS. Je parie que ton slider peut passer correctement sous IE7, voire même sous IE6. C'est plutôt du côté du CSS qu'il faudrait regarder pour rajouter des correctifs visant IE 6 et 7.
Tu me conseille de mettre un commentaire conditionnel pour chaque version de IE?

si je met un commentaire pour les versions précédentes de IE8 et un pour les versions plus récentes que IE 8, cela devrai corriger le tir, non?

<!--[if gte IE 8]><![endif]-->
<!--[if lt IE 8]><![endif]-->

J'y ai pensé au css mais mon css pour mon slider est vraiment simple.


#slider_home {  width:775px; position: relative;}
#slider_home ul{ margin:0; padding:0;}
#slider_home li{ margin:0; padding:0;list-style:none;position: relative; }


je vais continuer a faire des tests Smiley biggrin ... et je reste a votre écoute si jamais vous avez une idée

encore merci
j'ai une autre question au niveau de la programmation.

j'ai mon slider, dois-je rappeler mon <div id="slider_home"> dans chaque commentaire conditionnel?

ou dois-je mettre mes commentaires conditionnels au sein de mon div ?

merci
ce qui est étrange en mettant un commentaire pour les versions plus récente qu'IE 8 et un commentaire pour les version avant IE8, c'est que sous IE, ça passe tres bien mais plus sur FF...
j'ai décide de mettre un commentaire pour chaque version de IE et de d'annuler le slider si on est pas sur IE8 minimum, ce qui donne ceci :

<div id="main_promo">          
            		
<!--[if IE 6]>                     
<div class="home_ie"></div>
<![endif]-->
                    
<!--[if IE 7]>                     
<div class="home_ie"></div>   
<![endif]-->            

<!--[if IE 8]>
<div id="slider_home" class="slider">
                           <ul>
                            <li><img src="main.jpg" alt="slide1"/></li>
                            <li><img src="main2" alt="slide2" /></li>
                            <li><img src="main3" alt="slide3"   /></li>       
                            </ul>
</div>
<![endif]-->
                      
 </div>


Donc cela marche tres bien sous IE, toute version confondue mais FF ne lis plus mon slider...

Le CSS de mon slider ne change pas:


#slider_home {  width:775px; position: relative;}

#slider_home ul{ margin:0; padding:0;}

#slider_home li{ margin:0; padding:0;list-style:none;position: relative; }



le CSS de home_ie sur ma CSS reservé a IE 6 ET 7:

.home_ie {background-image:url(../images/main_home.jpg);}
[/code][code]
Latomate a écrit :
Tu me conseille de mettre un commentaire conditionnel pour chaque version de IE?

Je te conseillais de n'utiliser aucun commentaire conditionnel.

Latomate a écrit :
mais FF ne lis plus mon slider...

Forcément, tu as tout mis dans des commentaires HTML. Je rappelle que les commentaires conditionnels sont avant tout des commentaires HTML. Un commentaire HTML ça ressemble à ça:
<!--[#red]Contenu du commentaire[/#]-->

Un commentaire conditionnel c'est pareil:
<!--[#red][if lt IE 8]><![endif][/#]-->


Un commentaire conditionnel c'est un commentaire HTML standard dont le contenu utilise une syntaxe spécifique à Internet Explorer. Tous les navigateurs sauf IE vont ignorer le contenu du commentaire. IE va lire ce contenu et voir s'il trouve cette syntaxe particulière, et déterminer s'il est concerné (version visée).

Mais, pour me répéter:
- N'utilise pas les commentaires conditionnels car tu ne les maitrise visiblement pas.
- N'utilise pas les commentaires conditionnels car ce n'est de toute façon pas la bonne solution ici.
Modifié par Florent V. (27 Oct 2010 - 12:18)
Merci florent, effectivement j'ai résolu mon probleme en passant par les CSS comme tu l'avais dit.

Encore merci, c'est un réel plaisir cette communauté, il y a toujours quelqu'un qui sait vous aider et vous orienter!!!