<div id="box" style="position:absolute;visibility:hidden"> <font face="arial"><h6> <span id="caption" style="font-weight:bolder"></span><br> <span id="testo" style="padding-left:2px"></span><br> <span id="copyr" style="text-align:right">AlexMfM Box ver. 1.0</span> </div></h6> <script language="javascript"> function mostra_box(cpt,txt,cpt_bg,txt_bg,cpt_fg,txt_fg) { var pos_x = event.offsetX; var pos_y = event.offsetY; /* NON si deve usare event.clientX e event.clientY perche' altrimenti quando si scrolla in basso la pagina, il box non resta accanto al link, ma viene posizionato piu' in alto, dovuto al fatto che clientX e clientY prendono come origine dall'angolo superiore sinistro del canvas (area visibile della finestra) mentre top e left dello style, hanno come origine l'angolo in alto a sinistra dell'inizio del documento! Usando invece offsetX e offsetY si da' la stessa origine. */ box.style.width=250; caption.style.width=250; testo.style.width=250; copyr.style.width=250; box.style.top=pos_y+10; box.style.left=pos_x+10; box.style.border='1px solid '+cpt_bg; caption.style.backgroundColor=cpt_bg; testo.style.backgroundColor=txt_bg; copyr.style.backgroundColor=cpt_bg; caption.style.color=cpt_fg; testo.style.color=txt_fg; copyr.style.color=cpt_fg; caption.innerHTML=cpt; testo.innerHTML=txt; box.style.visibility='visible'; } function nascondi() { box.style.visibility='hidden'; } </script> |
La prima parte, fuori dallo script, crea il box vero e proprio. Per l'elememto div si stabilisce che deve avere un posizionamento assoluto e deve di default essere invisibile. I tre elementi span al suo interno sono relativamente: la caption, ovvero la barra del titolo, l'elemento in cui andrà il testo e l'ultimo è la riga dove andrà un messaggio uguale per tutti i box generati che in questo caso contiene il 'copyright' o semplicemente il nome del box. Nello script ci sono le due funzioni che regolano il box. Gli argomenti della funzione mostra_box() sono i seguenti:
Si inizia prelevando le coordinate del mouse nel punto in cui avviene l'evento. Leggete attentamente il commento in quanto fa capire come funziona il prelievo delle coordinate del punto dell'evento. Successivamente si imposta la larghezza di tutti gli elementi del box a 250 pixel. Subito dopo si definiscono le proprietà del box stesso: l'elemento box viene posizionato 10 pixel in basso e a destra della punta del cursore, gli viene impostato il bordo (un pixel solido del colore di sfondo della caption), vengono impostati gli sfondi di caption e testo, i colori del testo di caption e area di testo. Notate che in questo tipo di box le proprietà dell'elemento copyr sono le stese della caption. Successivamente si impostano le scritte nei vari elementi e si rende il box visibile. La funzione nascondi() si limita a farlo scomparire. |