Newsgroup: it.comp.lang.javascript
Titolo: Png e behavior

Ciao a tutti,
sto cercando di far digerire le Png trasparenti a IE con l'ausilio delle
behavior proprietarie...
Grazie a questo link:
http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html
ho potuto farmi un'idea di come funzioni la cosa...
Questo metodo pero' mi sembra che non funzioni se inserisco le immagini con
JavaScript attaverso document.write()...
Si puo' modificare in qualche modo il behavior?
Grazie

 behavior proprietarie...
cerca "bob osola" con google
-- 
Melius abundare quam deficere.
Ovverosia: e' meglio essere abbondanti che deficienti.
		-- Adriano Altorio

 cerca "bob osola" con google
Ti ringrazio,
anche quello l'avevo gia' guardato...
ed effettivamente anche quello e' stato istruttivo
Grazie

 Si puo' modificare in qualche modo il behavior?
Ti ripeto, non è una questione di behavior. Puoi impostare direttamente il
visual filters tralasciando tutto il meccanismo dei behavior.
-- 
.ZER0//sign
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)
on air ~ "Bishonen - Grottango - Sangue e Acciaio"

 all'elemento in questione, o da javascript.
mi potresti spiegare cosa intendi per inline?
Ho avuto modo di documentarmi e mi sembra di aver trovato fondamentalmente
3/4 modi... Probabilmente quello a cui alludi tu e' uno di quelli, pero'
per sicurezza...
Grazie

 3/4 modi... 
Ti ripeto, c'è un unico modo per far digerire le png con canale alpha a IE.
Uno solo. Ovvero l'uso di un visual filters: L' AlphaImageLoader.
http://msdn.microsoft.com/workshop/author/filter/reference/filters/alphaimageloader.asp
Tutto ciò che puoi trovare circa l'uso di PNG fa uso di questo filtro, ed è
unicamente questo a permettere di poter visualizzare un immagine png con il
canale di alpha.
Sono tutte "variazioni" sul tema: behavior, funzioni che vengono invocate
all'onload del documento e recuperano i tag IMG, etc.
-- 
.ZER0//sign
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)
on air ~ "Bloc Party - So Here We Are"

 all'onload del documento e recuperano i tag IMG, etc.
e soprattutto sull'onpropertychange che sarebbe quello che interessa a me;
infatti, io utilizo una libreria esterna che fa cambiare l'alpha delle mie
immagini, e il behavior mi funge da callback "rimettendo tutto a posto"
senza dover mettere mano a niente...
Si puo' fare anche con JS tradizionale?
Grazie

 Si puo' fare anche con JS tradizionale?
Collegami questo discorso al post iniziale sul document.write(). Non stai
fornendo troppe informazioni per darti risposte soddisfacenti. :)


 fornendo troppe informazioni per darti risposte soddisfacenti. :)
Scusa, pensavo di fare un piacere al NG non appesantendo troppo il 3d,
se lo ritieni utile o interessante o boh.. posso esporre in maniera
esauriente cosa stavo facendo...
che cmq mi sembra di aver risolto lanciando (solo per IE) all'onload della
pagina una funzione che cambia il src delle immagini e che setta il
runtimeStyle.filter a "progid:DXImageTransform.Microsoft.AlphaImage...."
Ciao

 runtimeStyle.filter a "progid:DXImageTransform.Microsoft.AlphaImage...."
Se č solo per impostare l'AlphaImageLoader, potresti benissimo utilizzar lo
style, invece che passare dal runtime. Che problemi hai riscontrato?
-- 
~ "Viviamo dei vuoti lasciati da qualcun'altro."

 style, invece che passare dal runtime. Che problemi hai riscontrato?
Beh, riassumendo e semplificando, io userei runtimeStyle, perche' uso gia'
style per dare in piu' l'effetto di opacita'...
E cosi' faccio tutto ;) cioe' png trasparenti opacizzate a runtime...
Ciao

 E cosi' faccio tutto ;) cioe' png trasparenti opacizzate a runtime...
Pubblica uno stralcio di codice, perché c'è qualcosa che non mi torna.
In primis, cambiare il filtro sul runtimeStyle ha come effetto quello di
sovrascrivere lo style, non quello di "accodarlo". Quindi in sostanza
perderesti l'opacità, se la imposti tramite style.
Esempio pratico:
	<div id="test" style="border:1px solid black">a box</div>
	<script type="text/javascript">
		var o = document.getElementById("drag");			
 
		o.runtimeStyle.borderColor="red";
		o.style.borderColor="silver";
	}
	</script>	
Seconda di poi, si può benissimo usare sia il filtro l'alpha che opacity
contemporaneamente su un elemento (si possono usare anche più di due filtri
assieme); ma sulle prove che ho fatto all'epoca l'opacity va in conflitto con
l'alpha. Risultato, l'elemento ha sì l'opacità impostata, ma perde i livelli
di opacità della PNG. La soluzione escludeva quindi di usare entrambi i filtri
sul medesimo elemento.
C'è anche da dire che i visual filters, in quanto collegati direttamente alle
DX, dipendono molto dal sistema in questione, e quindi hanno risultati diversi
anche a parità di versione di IE (uno dei motivi per cui andrebbero usati col
contagocce).
-- 
~ L'ingegnere non vive, funziona.

 E cosi' faccio tutto ;) cioe' png trasparenti opacizzate a runtime...
Pubblica uno stralcio di codice, perché c'è qualcosa che non mi torna.
In primis, cambiare il filtro sul runtimeStyle ha come effetto quello di
sovrascrivere lo style, non quello di "accodarlo". Quindi in sostanza
perderesti l'opacità, se la imposti tramite style.
Esempio pratico:
	<div id="test" style="border:1px solid black">a box</div>
	<script type="text/javascript">
		var o = document.getElementById("test");			


 contagocce).
Oh, mamma  o_O

 Oh, mamma  o_O
Eggià..
-- 
~ Il futuro è nelle nostre mani.
Purtroppo.

 Eggià..
Tra un po', approfondirei anche questo...
Ciao e grazie

 Tra un po', approfondirei anche questo...
Purtroppo, per questo, si può fare ben poco. Essendo i VF strettamente
collagati alle DirectX.
-- 
~ "L'arte non riproduce cio' che e' visibile,ma rende visibile cio' che
non sempre lo e'" (Paul Klee)

 collagati alle DirectX.
Con approfondire intendevo ad es.: richiedere di elencare eventuali casi
noti di anomalie, eventuali soluzioni web preferibili piuttosto che altre
(infatti e' vero e sacrosanto quello che mi hai ripetuto piu' volte sul
visual filter, pero' e' altrettanto vero che si puo' applicare sto caxxo di
filtro in piu' modi diversi ottenendo apparentemente la stessa cosa e forse
c'e' un "modo" piu' indicato di altri), dire qualche percentuale di
insucesso e qualificare l'insucesso...

 collagati alle DirectX.
Potresti chiarirmi se sono noti dei casi di mal funzionamento...
Alla fine io applico solo lo style.filter ad una gif trasparente (solo nel
caso di IE > 5.5)

 Potresti chiarirmi se sono noti dei casi di mal funzionamento...
Sono noti eccome, a me personalmente sono successi piů di una volta, su
configurazioni differenti. Ma la causa prima non č mai stata appurata, dato
che sistema operativo e browser erano gli stessi, l'unica differenza poteva
stare nelle DX e nei driver della scheda video.
-- 
- Se tu un Dio?
- N...no.
- E allora MUORI!
- Ray, se qualcuno ti chiede se sei un Dio, tu devi rispondere di sě!

 stare nelle DX e nei driver della scheda video.
:"(
Cacchio!!!
Deduco quindi che le stesse problematiche si presenterebbero anche se
applicassi un opacita' con la funzione di prima setOpacity() ...
Ti espongo velocissimamente la mia situazione:
devo decidere se utilizzare delle "semplici" GIF trasparenti o delle PNG
trasparenti con l'antialias dei fordi sul trasparente (+ il canale alpha)
potrei fare a meno dell'antialias ma mi servirebbe applicare un po' di
trasparenza
Quindi devo dedurre che per un sito e-commerce, dove gli utenti IE5.5+ sono
88% non dovrebbe essere utilizzato un approccio con le PNG trasparenti dove
e' vitale che quest'ultime si visualizzino
D'altra parte devo aggiungere una cosa, è stato deciso di non considerare
gli utenti con IE < 5.5 che sono 0.9%
Quindi se mi dici che la percentuale degli IE5.5+ che potrebbero avere dei
problemi e' estremamente bassa allora potrei proseguire con le PNG...
Cosa mi consigli?
E cmq GRAZIE!!!!