11548 sujets
Merci de me répondre et je vous donne volontiers les codes :
En fait j'ai mis un javascript pour faire tourner un petit diaporama sur la page d'accueil, et je voulais avoir un fond transparent ce qui m'a causé bien des problèmes car cela fait 4 jours que je cherche. J'ai trouvé un script qui fonctionne et je l'ai collé dans la meme page que le script du diaporama mais je ne sais pas si c'est juste ! Merci d'avance !
En fait j'ai mis un javascript pour faire tourner un petit diaporama sur la page d'accueil, et je voulais avoir un fond transparent ce qui m'a causé bien des problèmes car cela fait 4 jours que je cherche. J'ai trouvé un script qui fonctionne et je l'ai collé dans la meme page que le script du diaporama mais je ne sais pas si c'est juste ! Merci d'avance !
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Base Boutique</title>
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="fr" />
<script type="text/javascript" src="javascript/base.js"></script>
<link rel="stylesheet" media="screen" type="text/css" title="Base" href="style/base.css" />
<!--[if lt IE 7.]>
<script type="text/javascript" src="javascript/base.js"></script>
<![endif]-->
</head>
<body onload="runSlideShow()">
<div id="conteneur">
</body>

Là, tu ne montres que les appels et non le code JS.
Néanmoins, je vois que tu lances le diaporama comme ceci :
et ton autre script doit certainement être lancé via un window.onload.
Si tel est le cas, il y a conflit donc je t'invite à consulter ce tuto pour résoudre ce problème.
PS : Pourquoi lances-tu deux fois ton script (dont une fois dans un commentaire conditionnel mal écrit -> mauvaise syntaxe) ?
Modifié par koala64 (16 Oct 2007 - 15:02)

Néanmoins, je vois que tu lances le diaporama comme ceci :
<body onload="runSlideShow()">...
et ton autre script doit certainement être lancé via un window.onload.
Si tel est le cas, il y a conflit donc je t'invite à consulter ce tuto pour résoudre ce problème.
PS : Pourquoi lances-tu deux fois ton script (dont une fois dans un commentaire conditionnel mal écrit -> mauvaise syntaxe) ?
Modifié par koala64 (16 Oct 2007 - 15:02)
Merci mais là je comprends plus rien j'essaie quand même de te donner le code javascript car j'ai un peu de difficultés à m'en sortir toute seule peut-être pourrais-tu m'aider à trouver la solution ?
[/i][/i][/i][/i][/i][/i][/i]
/*cette page sers de script au site base boutique*/
// Set slideShowSpeed (milliseconds)
var slideShowSpeed = 3000
// Duration of crossfade (seconds)
var crossFadeDuration = 2
// Specify the image files
var Pic = new Array() // don't touch this
// to add more images, just continue
// the pattern, adding to the array below
Pic[0] = './photos/im1.png'
Pic[1] = './photos/im2.png'
Pic[2] = './photos/im3.png'
Pic[3] = './photos/im4.png'
Pic[4] = './photos/im5.png'
Pic[5] = './photos/im6.png'
Pic[6] = './photos/im7.png'
Pic[7] = './photos/im8.png'
Pic[8] = './photos/im9.png'
Pic[9] = './photos/im10.png'
Pic[10] = './photos/im11.png'
Pic[11] = './photos/im12.png'
Pic[12] = './photos/im13.png'
Pic[13] = './photos/im14.png'
Pic[14] = './photos/im16.png'
// =======================================
// Ne rien éditer au-dessous de cette ligne
// =======================================
var t
var j = 0
var p = Pic.length
var preLoad = new Array()
for (i = 0; i < p; i++){
preLoad[i] = new Image()
preLoad[i].src = Pic[i]
}
function runSlideShow(){
if (document.all){
document.images.SlideShow.style.filter="blendTrans(duration=2)"
document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)"
document.images.SlideShow.filters.blendTrans.Apply()
}
document.images.SlideShow.src = preLoad[j].src
if (document.all){
document.images.SlideShow.filters.blendTrans.Play()
}
j = j + 1
if (j > (p-1)) j=0
t = setTimeout('runSlideShow()', slideShowSpeed)
}
/**********************************************************
**********************************************************/
if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
window.attachEvent("onload", alphaBackgrounds);
document.writeln('<style type="text/css">img { visibility:hidden; } </style>');
window.attachEvent("onload", fnLoadPngs);
}
// Sleight Background
function alphaBackgrounds(){
var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
for (i=0; i<document.all.length; i++){
var bg = document.all[i].currentStyle.backgroundImage;
if (itsAllGood && bg){
if (bg.match(/\.png/i) != null){
var mypng = bg.substring(5,bg.length-2);
document.all[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mypng+"', sizingMethod='scale')";
document.all[i].style.backgroundImage = "url('/assets/images/x.gif')";
}
}
}
}
// Sleight Simple
function fnLoadPngs()
{
var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
for (var i = document.images.length - 1, img = null; (img = document.images[i]); i--)
{
if (itsAllGood && img.src.match(/\.png$/i) != null)
{
var src = img.src;
var div = document.createElement("DIV");
div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../image/fondtransp.png', sizing='scale')"
div.style.width = img.width + "px";
div.style.height = img.height + "px";
img.replaceNode(div);
}
img.style.visibility = "visible";
}
}

Pour ton commentaire conditionnel, tu trouveras la bonne syntaxe dans la FAQ (Il y a plein de réponses dans celle-ci
).
Après, il te faut séparer les deux scripts et ne pas les mettre tous les deux dans le même fichier.
Pour ton diaporama, tu peux par exemple créer un fichier diaporama.js, y mettre son code JS puis faire l'appel comme suit :
Pour le fond transparent et vu comment est monté le script que tu me montres, il faut le mettre en direct dans le head au sein d'un commentaire conditionnel. Ca devrait donner quelquechose comme çà :
PS : J'ai supprimé la détection du navigateur qui était faite au départ étant donné que dans le commentaire conditionnel, tu n'affecteras qu'IE.

Après, il te faut séparer les deux scripts et ne pas les mettre tous les deux dans le même fichier.
Pour ton diaporama, tu peux par exemple créer un fichier diaporama.js, y mettre son code JS puis faire l'appel comme suit :
<script type="text/javascript" src="diaporama.js"></script>
Pour le fond transparent et vu comment est monté le script que tu me montres, il faut le mettre en direct dans le head au sein d'un commentaire conditionnel. Ca devrait donner quelquechose comme çà :
<!--[if lt IE 7]>
<script type="text/javascript"><!--
window.attachEvent("onload", alphaBackgrounds);
document.writeln('<style type="text/css">img { visibility:hidden; } </style>');
window.attachEvent("onload", fnLoadPngs);
// Sleight Background
function alphaBackgrounds()
{
var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
for (i=0; i<document.all.length; i++)
{
var bg = document.all[ i].currentStyle.backgroundImage;
if (itsAllGood && bg)
if (bg.match(/\.png/i) != null)
{
var mypng = bg.substring(5,bg.length-2);
document.all[ i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mypng+"', sizingMethod='scale')";
document.all[ i].style.backgroundImage = "url('/assets/images/x.gif')";
}
}
}
// Sleight Simple
function fnLoadPngs()
{
var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
for (var i = document.images.length - 1, img = null; (img = document.images[ i]); i--)
{
if (itsAllGood && img.src.match(/\.png$/i) != null)
{
var src = img.src;
var div = document.createElement("DIV");
div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../image/fondtransp.png', sizing='scale')"
div.style.width = img.width + "px";
div.style.height = img.height + "px";
img.replaceNode(div);
}
img.style.visibility = "visible";
}
}
//--></script>
<![ endif]-->
(Attention ! J'ai inséré des espaces sur les [ i] et le [ endif] pour que ça reste lisible sur le forum mais ils sont à supprimer) 
PS : J'ai supprimé la détection du navigateur qui était faite au départ étant donné que dans le commentaire conditionnel, tu n'affecteras qu'IE.
J'ai tout mis comme tu m'as dit mais dans IE je ne vois pas les images de mon diaporama ca ne fonctionne pas. Peut-être c'est le <body onload="runSlideShow()"> qui n'est pas juste mais alors que faut-il mettre à la place ?
En tout cas merci pour la FAQ sur les commentaires ca m'est très utile et tout le reste aussi.
Modifié par casey (16 Oct 2007 - 16:05)
En tout cas merci pour la FAQ sur les commentaires ca m'est très utile et tout le reste aussi.

Modifié par casey (16 Oct 2007 - 16:05)
Désolée pour les fautes mais c'est la fatigue ! Malheureusement, pour l'instant je travaille en local et je ne peux pas te donner le lien! Quels sont les conditions à connaître pour permettre aux deux navigateurs de charger un diaporama qui est un javascript et un autre script conditionnel comme celui que tu viens de me transmettre corrigé ?
Il y a sûrement quelque chose que j'ignore !
Modifié par casey (16 Oct 2007 - 16:09)
Il y a sûrement quelque chose que j'ignore !

Modifié par casey (16 Oct 2007 - 16:09)
Essaie d'enlever le onload="runSlideShow()" sur ton body et mets ceci dans ton fichier diaporama.js :
function connect(oElem, sEvType, fn, bCapture)
{
return document.addEventListener ?
oElem.addEventListener(sEvType, fn, bCapture):
oElem.attachEvent ?
oElem.attachEvent('on' + sEvType, fn):
false;
}
connect(window, 'load', runSlideShow, false);
Pour charger plusieurs scripts à la fois, on évite généralement de lancer ces scripts sur le onload ou alors on englobe tout dans une fonction anonyme.