Newsgroup: it.comp.lang.javascript
Titolo: Layer nella posizione di una img

Come posso far apparire un layer nella posizione relativa ad un immagine?
Mi spiego meglio: genero una pagina in asp, e voglio che passando il mouse
sopra alcune immagini compaiano dei layer, il problema è che non so a priori
quante immagini ci saranno, quindi ho bisogno che la posizione di ciascun
layer sia relativa alla posizione di ciascuna immagine.... suggerimenti?
grazie anticipatamente :)
--
Madarco
Madar...@libero.it
-(rimuovere XXX)


Ciao,
ti suggerisco di dare un'occhiata almeno ai 30 post precedenti quando 
posti, potresti scoprire che la tua stessa domanda è appena stata posta 
da Pippo Pluto poco sotto...  
Ciao
armaged

 ha scritto nel messaggio
news:1105_10...@powernews.libero.it...


 layer sia relativa alla posizione di ciascuna immagine.... suggerimenti?
Leggi la posizione istantanea del puntatore.
Questa FAQ ti puo' aiutare:
http://www.jsdir.com/faq/faq.asp?espandi=mostra&numero=491
-- 
Ciao, Riccardo.
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
    itALY = it

 niente...
Ciao,
il mio suggerimento mira ad evitarti di dover reinventare la ruota, 
considerato che vi sono script pensati appositamente per i tuoi scopi 
(soprattutto se c'è qualcuno che ti fiata sul collo). Per il tipo di 
problematica che devi risolvere uno script come Infotip (che suggerivo a 
PippoPluto) ti può essere d'aiuto.
Ma ovviamente se sei in fase di studio l'approccio deve essere 
completamente diverso,  ogni browser ha le sue peculiarità per cui devi 
iniziare a studiarti bene il DOM di ogni browser che intendi supportare.
Scoprirai che puoi accedere alla posizione di ogni layer conoscendone 
l'ID ma accedendovi in maniera diversa a seconda del browser usato 
(ma non con tutti i browser vi riesci).
Ciao!
armaged
 

 
http://www.jsdir.com/faq/faq.asp?espandi=mostra&numero=491
bellissimo sto sito! :)


 ha scritto nel messaggio
news:1103_10...@powernews.libero.it...

 in effetti ho il fiato sul collo non poco... ma non mi piace approfittare
del lavoro altrui, (dovrei pagare 100? per comprare la licenza.... ) quindi
per una cosa così semplice preferirei capire e farla da solo :)

 
ciao, per un uso su siti personali lo script è gratuito, e ti devo dire che 
mi ha fatto risparmiare parecchio tempo per realizzare un'applicazione 
che avevo in mente già da un po'(puoi zoommare i grafici se vai sulle 
frecce):
http://digilander.libero.it/armageddon99/intraday/intraday.htm
Se invece stai facendo delle applicazioni per un sito comerciale bè, 
allora devi valutare il rapporto costo/beneficio, se in un paio d'ore fai 
tutto allora non ti conviene comprare la licenza,  magari prova a fare 
qualcosa ad hoc, anche se non flessibile come Infotip , così risparmi 
tempo e denaro.
Ti suggerisco un altro sito dove puoi trovare ulteriori risorse di qualità: 
www.dhtmlcentral.com
 
ciao!
armaged
 
 


ottimo anche questo sito, non ne avreste uno con tutto gli oggetti di IE e
NS? per esempio io ora ho quasi risolto usando gli esempi de lsito che mi ha
dato riccardo ( 
http://www.jsdir.com
 ), però il problema è che uso questa
funzione per ricavare la posizione del mouse:
-----
nn?window.captureEvents(Event.MOUSEMOVE):null;
nn?window.onmousemove=mostra:document.onmousemove=mostra;
function mostra(mosso)
   {
   if (ie)
      {
      xPos=window.event.screenX;
      yPos=window.event.screenY;
      }
      else
      {
      xPos=mosso.screenX;
      yPos=mosso.screenY;
      }
   }
----
che mi da la pos assoluta, ma quando poi imposto la posizione del layer
con(dovrebbe funzionare sia su IE che NS):
---
ww=(document.all)?(document.all['pippo'].style):(document.layers)?(document<
br>
layers['pippo']):(document.getElementById)?(document.getElementById('pippo')
.style):null
ww.top=yPos;
ww.left=xPos;
---
ww.left è la posizione del layer rispetto al margine della pagina, xPos è la
posizione assoluta del mouse! cioè il layer mi viene spostato di tanti pixel
quanti cene sono tra la finestra del browser ed il margine sinistro dello
schermo. naturalmente se il browser è a tutto schermo il problema non
sussiste...
c'è un metodo per individuare la posizione del mouse relativa a quella della
finestra del browser?
scusate per la lunghezza del post

 finestra del browser?
Si, puoi leggere la posizione della finestra relativamente allo schermo 
con screenX e screenY.
Prova a modificare come segue:
ww.top=yPos-self.screenY;
ww.left=xPos-self.screenX;
Vedi che succede, io cmq non ho provato!!!
-- 
Ciao, Riccardo
------------------------------------------------------------------------
http://www.jsdir.com
 ---- Bring Your Site To Life!!!!
------------------------------------------------------------------------
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - D2D006
------------------------------------------------------------------------
 ----> itALY = it <----

 Vedi che succede, io cmq non ho provato!!!
Rileggi bene il mio post, è come ho fatto io! :)
con screenY mi da la pos assoluta non quella relativa al bordo della
finestra :\ se potessi impostare almeno il layer in una posizione assoluta,
non avrei problemi... come fanno gli effetti delle immagini che seguono il
mouse?

 finestra :\ 
Io screenY non l'ho applicato al mouse, ma alla window (self) qundi ho la 
posizione della window nello schermo!
Al peggio prova a fare self.window.screenX/Y ma non dovrebbe influire, 
self cmq e' un riferimento per la finestra corrente.
Se non ne esci posta lo script completo che ci diamo un'occhio.


 all'interno dello schermo.
no, ti sbagli, ho la posizione del mouse ma non quella della finestra!
screenX e screenY mi danno la posizione del mouse nello schermo!
cmq ho risolto:
function muovi(nome){
ww=(document.all)?(document.all[nome].style):(document.layers)?(document.lay
ers[nome]):(document.getElementById)?(document.getElementById(nome).style):n
ull
   if (document.all)
       ww.left=window.event.clientX, ww.top=window.event.clientY;
   else if (document.layers)
       ww.left=e.pageX, ww.top=e.pageY;
}
vedi? a seconda del browser, clientX e pageX danno la posizione relativa ai
margini della pagina :)
con un semplice: <A href="#vuoto" onClick="move()" >Apri la finestra</A>
metto il layer nella posizione del mouse ogni volta che clicko sul link
per risolvere l'arcano mi è stata di grande aiuto questa faq:
http://www.jsdir.com/faq/faq.asp?espandi=mostra&numero=20
quindi grazie mille riccardo!
ps: con una leggera modifica all'inizio, intercettando un evento:
if (document.layers)
   {
   window.captureEvents(Event.MOUSEMOVE);
   window.onmousemove=move;
   }
   else if (document.all)
     document.onmousemove=move;
function move(e)
   {
   if (document.all)
       ww.left=window.event.clientX, ww.top=window.event.clientY;
   else if (document.layers)
       ww.left=e.pageX, ww.top=e.pageY;
   }
avviando la funzione muovi(nome) di prima il layer resta appiccicato al
mouse, realizzando uno di quegli effettini dell'img che segue il mouse...


 quindi grazie mille riccardo!
Tnx :-)
Ci sono anche alcuni StaffScripts sull'argomento, sorry, mi hai beccato 
in dei giorni un po' incasinati... :-(


 Specifies the x-coordinate of the left edge of a window.
screenX da la posizione della finestra, io cercavo invece la posizione
assoluta del mouse rispetto alla pagina web visualizzata, finalmente ho
trovato window.event.clientX che fa al caso mio.
unico problema: lo script che ho postato non funziona se si scrolla la
pagina, se si scrolla in giů, il layer sale verso l'alto invece di rimanere
nella posizione del mouse, penso di risolvere sottraendo
document.body.scrolltop sotto IE e windows.pageYoffset sotto NS, la modifica
č semplice ma ancora non la provo... cmq dovrebbe funzionare ;)


 č semplice ma ancora non la provo... cmq dovrebbe funzionare ;)
Infatti, vedi lo StaffScript "Marquee" nel sito.
