Ciao, cerco di spiegarvi dettagliatamente quello che sto cercando di fare:
ho una pagina che contiene un'immagine grande, all'interno dell'immagine ho dei link fatti a forma di box, che mi definiscono le varie aree cliccabili (i box) all'interno dell'immagine. Questa è la classe di questi box.
Questi link sono molti e sono dinamici, cioè estratti da un DB da PHP.Codice PHP:.box
{
POSITION: absolute;
DISPLAY: block;
BACKGROUND-COLOR: yellow;
}
.box:hover
{
BACKGROUND-COLOR: red;
}
Quindi supponiamo che PHP estragga 2 record e generi 2 box, e genera quindi l'HTML, come segue:
Come vedete, dovendo generare dei box dinamici, ho usato l'attributo style direttamente nel box, potendo così differenziare le coordinate di un box da quelle di un altro.Codice PHP:[img]immagine.jpg[/img]
[url="pagina1.php"][/url]
[url="pagina2.php"][/url]
Ora, le 4 coordinate che vedete, quelle che genera il PHP, sono relative al punto x=0,y=0 dell'angolo superiore sinistro dell'immagine grande. Mentre così come sono ora il browser le interpreterebbe come coordinate a partire dallo (0,0) dello schermo. Quindi a queste coordinate devo sommare la posizione dello (0,0) dell'immagine grande.
Nel tag BODY ho quindi messo che sull'onload venga calcolata la seguente funzione Javascript
che mi setta le variabili globali curleft e curtop rispettivamente con la coordinata x e y del punto 0,0 dell'immagine grande.Codice PHP:var curleft;
var curtop;
function FindPosition(obj)
{
curleft = curtop = 0;
if (obj.offsetParent)
{
curleft = obj.offsetLeft;
curtop = obj.offsetTop;
while (obj = obj.offsetParent)
{
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
}
}
}
Quello che mi rimane da fare è sommare ai vari style dei box i 2 valori curleft e curtop, al fine di posizionare i box correttamente all'interno dell'immagine. L'operazione deve essere effettuata lato client, perchè lato server non ho ancora il punto 0,0 dell'immagine. Ho provato a usare eventi onmouseover e onmouseout direttamente sui box, ma questo dà il noto effetto di "flippamento" dei box, ovverto continuano a lampeggiare veloccissimi.
Mi sapreste indicare un modo statico per sommare gli style dei box? Qualcosa che nella mia mente si figura come ..

Rispondi quotando