Newsgroup: it.comp.lang.javascript
Titolo: Drag su Mozilla con DOCTYPE...

ciao a tutti.
Ho cercato di utilizzare una funziona di drag per un layer su di una
pagina. Ne ho visti tantissimi, con centinaia di righe di codice, fino
a trovare la soluzione in uno breve.
In tutti quelli che ho trovato, compreso quello che stò utilizzando ho
il problema che:
Con IE funziona sia con il DOCTYPE che senza,
con Mozilla mi funziona solo senza il DOCTYPE,
con altri browser, non ho provato! :)
Qui la prova...
senza il DOCTYPE
http://www.visuddhi.com/drag/drag1.htm
con il DOCTYPE
http://www.visuddhi.com/drag/drag2.htm
Come posso 'adattarlo' per far funzionare quello con il DOCTYPE anche
con Mozilla?
Visuddhi
PS: se vi và, fate qualche prova anche con altri browser e s.o.
Grazie.
--
visuddhi { info at visuddhi dot com } { icq# 44339752 }
if it is to be, it is up to me { 
www.visuddhi.com
 }
absolutely free, VisuBox { 
www.visubox.com
 }

 con Mozilla?
nemmeno un'ideuzza su come andare a cercare?
non sono un mago in Javascript! :)



Per andare a cercare spesso puo' servire di aggiungere qualcosa allo
script in modo che ti visualizzi quello che succede :-)
Ad esempio:
Nell'html
<body onload="ou=document.getElementById('ou');">
[...]
<pre id="ou"></pre>
Nello script:
var ou=null;
function ds(s){
 var o=ou.innerHTML;
 ou.innerHTML=o+s;
}
Dopo di che modifica le tue funzioni per vedere se vengono eseguite e
cosa fanno:
function move(e){	
	if (dragapproved){
		ds("moving");
		ds(" from ");
		ds(z.style.left);
		ds(",");
		ds(z.style.top);
		ds(" to ");
		ds(temp1 + e.clientX - x); // Mozilla
		ds(",");
		ds(temp2 + e.clientY - y); // Mozilla
		ds("<br>");
[...]
function drags(e){
[...]
	if (firedobj.className == "drag"){
	[...]
		ds("dragging<br>");
		return false;
	}
Quello che trovi e':
z.style.left e z.style.top non vengono modificate. Ma questo si poteva
intuirlo :-)
L'errore e' comunque che come coordinate non vuole solo i valori
z.style.left="123" ma anche l'unita' di misura cioe'
z.style.left="123px".
Quindi prova a modificare in:
 var l = ns6 ? temp1 + e.clientX - x: temp1 + event.clientX - x;
 var t = ns6 ? temp2 + e.clientY - y : temp2 + event.clientY - y;
 z.style.left = l+"px";
 z.style.top = t+"px";
In questo modo con Mozilla 1.5 funziona perfettamente.
'bye

 z.style.left="123px".
grazie grazie grazie.
speravo che fosse una schiocchezza di quelle che però quando ti
sfuggono...
grazie anche per la dritta sui controlli.
ora mi resta solo da vedere se qualcun'altro fa qualche piccolo test
per vedere se funziona bene anche su altri browser e/o s.o.
ora abbiamo:
IE6 funziona
Mozilla 1.5 funziona
Firebird 0.8 funziona
a chi va di fare qualche prova? :)

 a chi va di fare qualche prova? :)
IE6 su w2k3 Funziona
FireFox drag1 si - drag2 no
-- 
RedFoxy
A fox around web
Power at fox for a yiffing world!
La legge del marketing:
Non migliorare il prodotto, cerca un cliente piu' scemo.

 FireFox drag1 si - drag2 no
come?
Firebird 0.8 funziona...
Firefox che è praticamente la stessa cosa no?
che pizza... ma che cambiano i browser ogni 10 giorni?

 che pizza... ma che cambiano i browser ogni 10 giorni?
Teoricamente il firebird e' morto alla versione 0,7 ed e' stato sostituito
con la versione Firefox 0,8
Io ho provato i due link che hai dato nel primo post, uno mi funziona con
FireFox e l'altro no
CMQ ho appena riporovato e mi ha funzionato con tutti e due
Ciao ;^)=
