Newsgroup: it.comp.lang.javascript
Titolo: Forum su IMG dinamiche in Nav (puntata 1)

Mi piacerebbe tanto tanto tanto arrivare una volta per tutte al fondo della
questione, mentre invece ogni volta si gira intorno all'ostacolo, i thread
rimangono a metà e io continuo ad accumulare frustrazione (e sia benedetto
il monopolio MS, se la concorrenza è questa!).
Allora, per chi ne avesse voglia, vorrei iniziare un lungo e pignolo thread
(che si spera diventi un forum) sulla gestione dinamica delle immagini in
Communicator.
Cominciamo con una cosa semplicissima:
<body>
<IMG SRC="1.gif" ID="imma">
</body>
Ok, lavoriamo su questa immagine, la quale (per inciso) è un quadrato nero
di 150px di lato. Mettiamo che lo voglia rappresentare come un quadrato con
lato solo 100px, con un alert iniziale che mette in pausa il cambiamento,
così da renderlo visibile.
<body>
<IMG SRC="1.gif" ID="imma">
</body>
<script language="Javascript1.2">
alert(document.images[0].width) ;
document.images[0].width = 100 ;
document.images[0].height = 100 ;
</script>
IE: mosta l'immagine originale, quindi l'alert, quindi facendo ok ridisegna
l'immagine secondo le nuove dimensioni impartite via script.
Nav: NON mostra alcuna immagine, ma subito l'alert e dopo NON FA UNA PIEGA,
l'immagine che viene stampata è quella originale.
Ovviamente le cose non cambiano se per scrupoloso amor di chiarezza si
provano ad inserire le dimensioni iniziali (date per scontate), sia sotto
forma di dichiarazione CSS che di attributi inseriti nel tag <IMG>
Ok, politica dei piccoli passi. Fermiamoci qui, fine della prima parte.
Qualcuno mi dice dove sta il trucco? Perché ci DEVE essere un trucco, o
no..?
 maghetto

no..?
In NS le proprietà document.nomeimmagine.width \ height sono di sola lettura.
Strano che non ti dia un errore di script...
Non ho mai avuto bisogno di ridimensionare delle immagini, non ho quindi suggerimenti da darti.
Una cosa potrebbe essere quella di mettere le immagini dentro un layer:
<layer id="nomelay" width="150" height="150">
<img src="URL" width="100%" height="100%">
</layer>
<script language="JavaScript">
document.nomelay.width = 100
</script>
---
the fly on the net
webmaster più alto del mondo
"the devil inside" 
http://members.tripod.com/netfly
e-mail: 
net...@netbusiness.it

 no..?
C'è sempre un trucco per tutto!
;))
Parti dalle indicazioni del mitico the fly on the net ;), e metti tutto in
un layer
(io uso i div perché mi piaciono di più.. ;))
poi, quando devi ridimensionare l'immagine, riscrivi
il layer:
<body>
<div id="DeLay" style="position:absolute; left:200; top:100;">
<img src="midi.gif" width="100" height="100">
</div>
<script language="JavaScript">
function reDim()
{
 document.DeLay.document.write('<img src="midi.gif" width="50"
height="200">');
 document.DeLay.document.close();
}
</script>
Attenzione: se vuoi fare animazioni "spinte", in cui devi ridimensionare
l'immagine n volte al secondo, con Netscape ti conviene usare due layers:
mentre visualizzi uno riscrivi l'altro con le nuove dimensioni, quindi,
appena pronto, fai comparire il secondo e nascondi il primo layer... è la
tecnica cosiddetta del doppio buffer, usata in grafica e nei giochi, ora
adattata al JS...
;)
Alla prox.
--
Bye.
-----------------------------------------
                Ðarius.
    <- 
www.infotronica.it/darius
 ->
             ICQ# 36150792
  - Art of JavaS.T - 
www.probo.it/aoj

 no..?
C'è sempre un trucco per tutto!
;))
Parti dalle indicazioni del mitico the fly on the net ;), e metti tutto in
un layer
(io userò i div perché mi piaciono di più.. ;))
