Ho trovato questo simpatico script che genera in js una galleria di immagini:
codice:
<HTML>
<HEAD>
<TITLE>HTML.it - il sito italiano sul Web publishing</TITLE>
<style>
A:link, A:visited { text-decoration: none }
A:hover { text-decoration: underline }
</style>
<script language="JavaScript1.2">
var slideShowSpeed = 3000
var crossFadeDuration = 3
var Pic = new Array()
Pic[0] = 'img/img1.jpg'
Pic[1] = 'img/img2.jpg'
Pic[2] = 'img/img3.jpg'
Pic[3] = 'img/img4.jpg'
isIE=document.all;
isNN=!document.all&&document.getElementById;
isN4=document.layers;
isHot=false;
function ddInit(e){
topDog=isIE ? "BODY" : "HTML";
whichDog=isIE ? document.all.theLayer : document.getElementById("theLayer");
hotDog=isIE ? event.srcElement : e.target;
while (hotDog.id!="titleBar"&&hotDog.tagName!=topDog){
hotDog=isIE ? hotDog.parentElement : hotDog.parentNode;
}
if (hotDog.id=="titleBar"){
offsetx=isIE ? event.clientX : e.clientX;
offsety=isIE ? event.clientY : e.clientY;
nowX=parseInt(whichDog.style.left);
nowY=parseInt(whichDog.style.top);
ddEnabled=true;
document.onmousemove=dd;
}
}
function dd(e){
if (!ddEnabled) return;
whichDog.style.left=isIE ? nowX+event.clientX-offsetx : nowX+e.clientX-offsetx;
whichDog.style.top=isIE ? nowY+event.clientY-offsety : nowY+e.clientY-offsety;
return false;
}
function ddN4(whatDog){
if (!isN4) return;
N4=eval(whatDog);
N4.captureEvents(Event.MOUSEDOWN|Event.MOUSEUP);
N4.onmousedown=function(e){
N4.captureEvents(Event.MOUSEMOVE);
N4x=e.x;
N4y=e.y;
}
N4.onmousemove=function(e){
if (isHot){
N4.moveBy(e.x-N4x,e.y-N4y);
return false;
}
}
N4.onmouseup=function(){
N4.releaseEvents(Event.MOUSEMOVE);
}
}
function hideMe(){
if (isIE||isNN) whichDog.style.visibility="hidden";
else if (isN4) document.theLayer.visibility="hide";
}
function showMe(){
if (isIE||isNN) whichDog.style.visibility="visible";
else if (isN4) document.theLayer.visibility="show";
}
document.onmousedown=ddInit;
document.onmouseup=Function("ddEnabled=false");
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();
}
if (!isN4) document.images.SlideShow.src = preLoad[j].src;
if (isN4) document.layers['theLayer'].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);
}
</script>
</HEAD>
<BODY onload="runSlideShow()" BGCOLOR="white" vlink="blue" link="blue">
<div id="theLayer" style="position:absolute;left:100;top:100;visibility:visible">
<table border="0" bgcolor="#333333" cellspacing="0" cellpadding="2">
<tr>
<td>
<table border="0" bgcolor="#cccccc" cellspacing="0" cellpadding="5">
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td id="titleBar" style="cursor:move">
<ilayer onSelectStart="return false">
<layer onMouseover="isHot=true;if (isN4) ddN4(theLayer)" onMouseout="isHot=false">
<font face="Arial" color="#000000">Slideshow di immagini</font>
</layer>
</ilayer>
</td>
<td style="cursor:hand" align="right">
<font color=#000000 size=2 face=arial>X </font>
</td>
</tr>
<tr>
<td bgcolor="#FFFFFF" style="padding:0px" colspan="2">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="VU">
[img]img/img1.jpg[/img]</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div align="center">
<font face="verdana" size="2">
Clicca per MOSTRARE la galleria</p>
Clicca per NASCONDERE la galleria</p>
</font>
</div>
<div align="center">
<font face="verdana" size="1">
(Il layer è trasportabile con il mouse)
</font>
</div>
</BODY>
</HTML>
Lo script funziona perfettamente in locale, lo uploddo sul server con il nome prova.htm e funziona, provo con il nome prova.php e sul server funziona perfettamente.
Provo a inserirlo nel mio sito e più precisamente nella pagina index.php dove è comunque l'unico js presente. Carico le img, copio il codice nell'head, l'altra parte nel body e lancio la pagina...
Si apre il popup della galleria e mostra correttamente le immagini in sequenza, anche il bottone chiudi funziona, però come provo a spostare il popup (cosa che nelle altre prove è sempre andato) ottengo questo risultato: la finestra non si muove e IE6 mi restituisce come errore:
riga 93
carattere 3
Argomento non valido
La riga 93 è questa: Pic[0] = 'img/img1.jpg' (dove creo l'array per le immagini)
Allora dico..magari ho ciccato a copiare il codice... provo a inserire nella pagina un include php che inserisce la pagina dello script identica a come l'ho trovata funzionante e... inclusa non funziona!
Cosa può essere? Qualcuno sa aiutarmi? Grazie, ciao