Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/10/2009, 07:37
Avatar de caneva
caneva
 
Fecha de Ingreso: junio-2006
Ubicación: Sevilla (España)
Mensajes: 81
Antigüedad: 17 años, 11 meses
Puntos: 1
Clase para crear una estructura mediante dom

El objetivo es evitar el poner el mismo código cada vez que vaya a necesitar una "ventana emergente tipo css" y para ello quiero construir una clase javascript que sea una "ventana" (es decir un fondo semitransparente y encima, mediante posicionamiento, otro opaco con texto). Dicha clase tendrá dos métodos básicos: abrir (poner las capas en visible) y cerrar (en hidden).

Por tanto la estructura que buscamos en el objeto sería la siguiente:
Código PHP:
<div id="ventana_form_nuevo_cliente">
  <
div id="fondo_transparente"></div>
  <
div id="contenido">Contenido de la ventana</div>
</
div
Mi problema surge porque tengo muchas dudas respecto a DOM, por ejemplo ¿es correcto crear una etiqueta div de esta forma?

document.createElement(div)
div.setAttribute.ID = principal

En tal caso supongo que debería hacer algo parecido a esto para crear mi clase:

Código PHP:
function ventana(nombreanchoaltoopacidad)
{
document.createElement(div)
this.setAttribute(Id)= nombre

//El resto de propiedades deben ser CSS, segun mi logica.
this.style.ancho ancho
this
.style.alto alto
this
.style.opacity opacidad
//Abria que crear también los dos divs hijos aquí.

//Métodos:
this.abrir mostrar
this
.cerrar ocultar
}

function 
mostrar()
{
 
this.style.visibility visible
}

function 
ocultar()
{
this.style.visibility hidden

Y ahora mi duda es:
¿Si utilizo "new ventana" para llamar al constructor como puedo hacer que esa función haga que ese elemento creado nuevo sean etiquetas divs como la estructura que pretendia conseguir al principio?

Bueno como podeís ver en la sintaxis también necesito que me echeis una mano.

mmm ahora que reviso lo que he escrito me pregunto si no sería mejor que las propiedades como alto, ancho y opacidad las estableciera mediante el nombre de la ventana en el archivo .css y no en la clase, por aquello de no tener que andar buscando cada creación de ventana en el código de la página sino irme directamente al .css ¿opiniones a esto tb por favor? gracias.
__________________
Cita:
"El camino empieza renunciando al control, y volviéndose flexibles."

Última edición por caneva; 06/10/2009 a las 08:09