Newsgroup: it.comp.lang.javascript
Titolo: layer trascinabile

Si può rendere con Javascript un layer od oggetto trascinabile?
Se si Come?
Grazie e Ciao













I layeronzi si possono tranquillamente trascinare, a patto che il 
      mouse non s'agiti troppo in fretta (ma c'è da dire che aumentando le 
      dimensioni del layer più o meno risolvi il problema) 











My 
      Brand New Windie


X












Bellina nè? una bella 
      simil-finestra.
Ancora più difficile da controllare : ((((( 


















[Tutto ciò solo per MSIE naturalmente - testato solo con il 5.5 
      per ora]
[Outlook Express tende a rallentare - dato che deve 
      intercettarli in continuazione - gli eventi di mouse, quindi se scatta un 
      po' non è colpa mia] 



>Si puň rendere con Javascript un layer od oggetto trascinabile?
Certo, devi gestire gli eventi onMouseDown (start) onMouseMove (drag) e onMouseUp (stop)
Quando parti ti conviene salvare in una variabile la posizione x e y del mouse
event.screenX
event.screenY
e quando occorre l'evento onMouseMove controllare la differenza di posizione ed eventualmente spostare il layer:
IE: document.all.nomelayer.style.pixelLeft/Top
NN: document.nomelayer.left/top
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<?xml version="1.0" encoding="UTF-8"?>
<sign>
<author>the fly on the net</author>
<description>il webmaster piů alto del mondo </description>
<a href="
http://www.probo.it/aoj
">Art of JavaS.</a>
<a href="
http://www.devil-inside.net/
">the devil inside</a>
<a href="mailto:
net...@netbusiness.it
">e-mail</a>
</sign>

Grazie a tutti
Ciao
Alex

veramente deliziosa
muovendo il mouse velocemente però ogni tanto se le perde, e poi la finestra
con la barra del titolo non riesco a  trascinarla, appena la muovo e la
trascino sopra un altro layer mi trascina quello....
cmq è veramente carino
ciao
:[Federiko]:

 cmq è veramente carino
con le immagini al posto dei layer è semplicemente perfetto, va che è una
meraviglia a qualsiasi velocità del mouse. Peccato che funzioni solo con IE : (
(vedrò se riesco ad adattarlo - temo di no, le expando sono insostituibili)

Juliet prova il mio layer in movimento...
l'ho buttato giu' di getto, ma non 'salta'...
e dimmi cosa ne pensi
ciao
p.s.
ti chiedo scusa per gli improperi dell'altro giorno.....
ma NON chiedo scusa per l'intervento del 'cannibale' (del quale non penso
proprio il meglio) lo faccio perche' non avevo capito l'ironia del tuo post.
-------------------------
<html>
<head>
<title>Layer in movimento</title>
<script language="javascript">
<!--
 var premi=0;
 var mem=false;
 var l, t, b, r, ti;
 var dx, dy;
 var oggetto="";
 function memor()
 {
  if(mem==false)
  {
   l=oggetto.style.pixelLeft;
   t=oggetto.style.pixelTop;
   b=oggetto.style.pixelBottom;
   r=oggetto.style.pixelRight;
   mem=true;
   dx=event.x;
   dy=event.y;
  }
 }
 function muovi()
 {
  if (premi==1)
  {
   memor();
   sposta();
  }
 }
 function sposta()
 {
   if (l>0 | r>0)
    deltax=event.x-dx
   if (t>0)
    deltay=dy-event.y
   if (b>0)
    deltay=event.y-dy
   if (l>0)
    oggetto.style.pixelLeft=l+deltax;
   if (b>0)
   oggetto.style.pixelBottom=b-deltay;
   if (r>0)
    oggetto.style.pixelRight=r+deltax;
   if (t>0)
   oggetto.style.pixelTop=t-deltay;
   if (event.button==0)
   {
    premi=0;
    mem=false;
   }
 }
 -->
</script>
</head>
<body onmousemove="muovi(oggetto)">
<div style="POSITION: absolute; LEFT: 8px; bottom: 90px; Z-INDEX: 20
dragdrop:true"
 onmousedown="oggetto=this;premi=1">
primo div che si sposta
</div>
<div id="due" style="POSITION: absolute; LEFT: 8px; top: 90px; Z-INDEX: 20
dragdrop:true"
 onmousedown="oggetto=this;premi=1">
secondo div che si sposta
</div>
</body>
</html>

(vedrò se riesco ad adattarlo - temo di no, le expando sono insostituibili)
Il layer "draggabili" a mo' di finestra e' un esperimento di dHTML
x-browsing che ho fatto da tempo.
Tranquillo, con qualche accorgimento puoi avere un codice che ti dia
lo stesso effetto sia su IE che su NS, senza la maggior parte dei
fastidiosi problemi che ha lo script di questa ZUPER (anche se la
perfezione assoluta, si sa', e' difficile da raggiungere in ogni
caso..)
Cmq piu' dello script in se' mi e' piaciuto il design semplice e
pulito. :)
--
C'ya,
  |
  |
'/|\'
\\O//
//"\\
'\ /'
________________________________________TagLine___
"Quanti Angeli danzano sulla punta di uno spillo?"













Grazie per gli interessanti spunti, Zorro, ora funziona perfettamente 
      (bastava usare onMouseMove del BODY anzichè quello del layer! 
    mitico!) 










My Brand New Windie


X












 


 




Funziona anche questa! 
THANKS!


















[ancora solo per MSIE... I'm sorry, lo 
adatterò]



figurati...
ti chiedo nuovamente scusa per.....
ciao a presto
zorro