Newsgroup: it.comp.lang.javascript
Titolo: Layers centrati

Non mi ricordo il modo per centrare i layers nella pagina, sapreste
dirmi dove trovare la soluzione al mio problema?
grazie.
PS
Se volete dare anche un rapido check a 
www.isdn.it/prova
 ve ne sarei
grato. Con NN c'e' qualche problema, sapreste dirmi come risolverlo?
PS
Mi scuso con tutti coloro che avessero visto questo msg anche su ICWH
--
sign under contruction

 dirmi dove trovare la soluzione al mio problema?
Con questo script puoi centrare i livelli automaticamente caricando le
funzioni con onLoad nel body...
Funziona anche su NN6....
<html>
<head><script language="JavaScript">
file://---------------------------------------
file://--Sample Script by Andreotta Fabiano--
file://--and...@atipower.it--
file://---------------------------------------
function centra(nome,larg){
if (document.layers){
document.layers[nome].width=larg;
document.layers[nome].pageX
=(window.innerWidth/2)-(document.layers[nome].width/2);
}
else if (document.all){
document.all[nome].width=larg;
document.all[nome].style.posLeft
=(document.body.clientWidth/2)-(document.all[nome].width/2);
}
else if(document.getElementById && (navigator.appName=='Netscape')){
document.getElementById(nome).width=larg;
document.getElementById(nome).style.left
=(window.innerWidth/2)-(document.getElementById(nome).width/2);
}
}
function centratop(nome,al){
if (document.layers){
document.layers[nome].height=al;
document.layers[nome].pageY
=(window.innerHeight/2)-(document.layers['primo'].height/2);
}
else if (document.all){
document.all[nome].height=al;
document.all[nome].style.posTop
=(document.body.clientHeight/2)-(document.all[nome].height/2);
}
else if(document.getElementById && (navigator.appName=='Netscape')){
document.getElementById(nome).height=al;
document.getElementById(nome).style.top
=(window.innerHeight/2)-(document.getElementById(nome).height/2);
}
}
</script>
<title></title>
</head>
<body>
<div id="primo"
style="position:absolute;height:40;width:300;background:red;"><strong>
<p align="center">text</strong> </p>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="javascript:centra('primo',300);">Centra Lef</a>t</p>
<p><a href="javascript:centratop('primo',40);">CentraTop</a></p>
</body>
</html>
____________________
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.atipower.it
http://www.afdsoftware.freeweb.org
____________________
Collaboratore: 
http://www.jsdir.com
____________________
*¢ L'unica certezza nella vita è che tutto è relativo (per fortuna)¢*


Grazie, adesso lo provo subito.
--
sign under contruction

Grazie, adesso lo provo subito.
non funziona. 
mmm ... io certamente di javascript non ne capisco molto (eufemismo
per "nulla") e forse non ho capito come si dovrebbe comportare cmq
l'ho copiato in un file .html e non succede nulla.
Il layer non si muove proprio.
Se non e' troppo disturbo inoltre vorrei sapere come fare a centrare
in automatico solo l'allineamento orizzontale (e non anche quello
verticale).
Grazie atipower
--
sign under contruction

l'ho copiato in un file .html e non succede nulla.
Ho  trovato da un'altra parte questo (extension per dreamweaver credo
del "maestro" Massimo Foti):
function BW_centerLayers() { //v1.0
  var i, horz, vert, width, height, x, y, args;
  args = BW_centerLayers.arguments;
  for (i=0; i<(args.length-5); i+=6) {
    horz   = args[i+2];
    vert   = args[i+3];
    width   = args[i+4];
    height   = args[i+5];
    if (navigator.appName == 'Netscape') {
      (horz) ? x = (window.innerWidth - width)/2 : x =
eval(args[i]+'.left');
	   (vert) ? y = (window.innerHeight - height)/2 : y =
eval(args[i]+'.top');
      if (document.layers != null) eval(args[i]+'.moveTo
('+x+','+y+')');
    } else { //IE
      	if (document.all != null){
			if (horz){
				eval(args[i+1]+'.style.left
='+((document.body.clientWidth - width)/2));
			}
			if (vert){
      			eval(args[i+1]+'.style.top ='+
((document.body.clientHeight - height)/2));
			}
       }   
	 }
  }
}
e che poi viene attivato da:
onMouseDown="BW_centerLayers('document.layers[\'Layer1\']','document.all[\'Layer1\']',true,false,'25','30')
Dove '25' e '30' sono ovviamente larghezza e altezza del layer.
Per far si' che questo js venga attivato ad ogni "resize" della
pagina, nel caso di visione non a tutto schermo, cosa dovrei fare?
Per il momento l'ho messo onLoad e funziona egregiamente.
PS
Si vede che di js non capisco nulla? :-)
PPS
Il link e': 
www.isdn.it/prova
Ah, un'altra cosa i layer sono nested. La cosa non crea problemi con
NN 4.72 non ho provato con altri NN pero'.
--
sign under contruction