Newsgroup: it.comp.lang.javascript
Titolo: primi passi con DHTML

SALVE AMICI,
Sto compiendo i primi passi con dhtml ed avrei  bisogno
di una mano...
Ho posizionato tre layer uno sopra l'altro. Al click del mouse sul Layer in
primo piano questi scorrono e si posizionano uno affianco all'altro.
ecco il codice:
 function moveLayer(Layer1Position,Layer2Position,Layer3Position)
{
   if (Layer1Position<201)
   {
     Layer1Position = Layer1Position + 5;
     Layer2Position = Layer2Position + 10;
     Layer3Position = Layer3Position + 15;
     eval(layerRef+"['Layer1']"+styleRef+".left="+Layer1Position);
     eval(layerRef+"['Layer2']"+styleRef+".left="+Layer2Position);
     eval(layerRef+"['Layer3']"+styleRef+".left="+Layer3Position);
setTimeout('moveLayer('+Layer1Position+','+Layer2Position+','+Layer3Position
+')',1);
     }
}
Come faccio a questo punto per far tornare i Layer di nuovo uno sotto
l'altro utilizzando la stessa funzione????
Vi prego aiutatemi mi sono e non riesco più ad andare oltre...
Vi ringrazio Tutti   :-(


e il resto del codice?????
layerRef?
styleRef??
mettici pure anche l'html........
--
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.aticommerce.com
  (new)
http://www.atipower.it
http://www.jsdir.com
http://www.dxml.it
  (u.c.)

In y7mH6.3568$
FS.4...@news1.tin.it
, Pentola Nera, 
leo...@tin.it
, il


Adesso magari dico una cosa ovvia, ma se usi la funzione con un cambio di
segno i layer tornano indetro al punto di partenza. Prova questa (su
Netscape 4, ma poi usa pure le tue istruzioni multipiattaforma: io le ho
tolte solo per comodità di prova) e vderai che succede esattamente questo.
Hai preso lo script dal libretto di Tecniche Nuove?
ciao
Roberto
<html>
<head>
<title>MUOVI I LAYER SU NETSCAPE</title>
<style type="text/css">
layer
{
    position: absolute;
    top: 25px;
}
</style>
<script language="javascript">
function moveLayer(Layer1Position,Layer2Position,Layer3Position)
{
   if (Layer1Position > 0)
   {
     Layer1Position = Layer1Position - 5;
     Layer2Position = Layer2Position - 10;
     Layer3Position = Layer3Position - 15;
     document.Layer1.left = Layer1Position;
     document.Layer2.left = Layer2Position;
     document.Layer3.left = Layer3Position;
setTimeout('moveLayer('+Layer1Position+','+Layer2Position+','+Layer3Position
+')',1);
     }
}
</script>
</head>
<body bgcolor="#FFFFFF" style="font-family: Verdana, monospace; font-size:
12px">
<a href="javascript:moveLayer(200, 400, 600)">muovici!</a>
<layer id="Layer1">LAYER 1</layer>
<layer id="Layer2">LAYER 2</layer>
<layer id="Layer3">LAYER 3</layer>
</body>
</html>

 mettici pure anche l'html........
Secondo me è così.
Se è Explorer:
layerRef = "document.all"
styleRef = "style"
Se è Navigator:
layerRef = "document"
style = ""
Visto il tipo di problema esposto, l'html mi pare consisterà in tre elementi
<div> con altrettanti id="Layer(n)"
_ciao_! 
:) Roberto

 mettici pure anche l'html........
Rettifico (colpa della fretta ....) :)
if (Explorer)
{
layerRef = "document.all"
styleRef = ".style"
}
if (Netscape) 
{
layerRef = "document.layers"
styleRef = ""
}
_ciao_! 
:) Roberto

 ha scritto nel messaggio
news:B714E25C.1EBF%rdic...@inwind.it...

Ciao Roberto,
Si, il codice l'ho preso da Tecniche Nuove, il problema è un altro:
La cosa + ovvia era proprio quella di decrementare il valore come hai fatto
tu.
Il Mio problema e diverso, Mi spiego meglio:
Cliccando sul primo Layer gli altri due vengono fuori,
cliccando nuovamente sempre sullo stesso Layer1   tutto
deve tornare come prima.
Il problema è che sul secondo click risultano vere tutte due le condizioni
ovvero (Layer1Position<201) e (Layer1Position>0) e lo script si blocca.
Grazie tante, a Presto

 ovvero (Layer1Position<201) e (Layer1Position>0) e lo script si blocca.
Prova a cambiare l'if della funzione di ritorno cosě:
if (Layer1Position != 0)
Ciao
_roberto