onMouseover show un layer y lo posiciono (top, left), como?
6 seguidores
tengo una lista de imagenes que al hacer rollover sobre ellas
hacen un show a un layer (div) que esta en otro lado de la pag.
pero ademas de visualizarlo quiero colocar ese mismo layer en posiciones distintas segun en que imagen este haciendo el rollover.
creo que habra que poner de alguna forma en el onMouseover los valores del top y left de ese div
alguna idea?
gracias
rafa
pregunta a lo mejor estúpida
¿poner dos o más layers?
SSS
perdon aclaro mas el tema.
tanto la lista de fotos para hacer el rollover
como los valores top left vienen de una BD
y puede ser una lista larga
es decir demasiados div
por ello solo puede haber uno que se posicione
orange
Ey Sergio ¿cómo estás? ...
Te lo he mandado al mail pero a grosso modo sería algo asi (lo que no me se de memoria son las propiedades para dar la posición)
<div id="elPunto" onMouseOver="ponPunto(x,y);"><imagen></div>
function ponPunto(x,y){
document.getElmentById["elPunto"].propiedadCSSTOP = x;
document.getElmentById["elPunto"].propiedadCSSLEFT = y;
}
He incluso creo que podrías meter el id directamente en la imagen.
rafa
joder borja !!,
de crack !! ;)
SSS
gracias orange
pero no logro que funcione eso...
estoy hecho un paquete o por que no lo entiendo o porque no me explico.
aclaremos un poco mas
por un lado:
.. a href ... onMouseOver="MM_showHideLayers('punto','','show')" onMouseOut="MM_showHideLayers('punto','','hide')" ... imagen1.gif.. ... /a
.. a href ... onMouseOver="MM_showHideLayers('punto','','show')" onMouseOut="MM_showHideLayers('punto','','hide')" ...imagen2.gif.. .../a
por otro (en una tabla distinta al otro lado de la pag)
<td>
<div id="punto" style="position:relative; width: 6px; height: 6px; left:???px; top:???px; visibility: hidden;" ...imgpunto.gif... </div>
</td>
pregunta:
como pasando el raton por la imagen1 hago que el div"punto" se ponga en una posicion (por ej. 100,300) y por pasando por la imagen2 que el div"punto" se ponga en otra posicion (por ej. 200,400)
mas concretamente:
como el onMouseOver de la imagen1 puede mandar al div"punto" colocarse en un sitio concreto (100,300)y el onMouseOver de la imagen2 en otro (200,400).
a ver si ya lo he explicado bien...
meddle
¿he oido divs+tablas? aclaranos ese punto. mejor aun, ¿tienes una pagina colgada para que la veamos y le añadamos el js?
SSS
.
ok, ahi va un link
http://www.fechevarria.org/pruebas/pagina.htm
.
orange
JEJE, has triunfado Sergio, Meddle es un crack del DHTML
:D
Me miro las funciones que has puesto y te respondo
(te advierto que creo que sería mejor olvidarte de las de Macromedia y programar las tuyas propias)
sgiraldo
yo recomiendo para DHTML las librerias DynDuo de Dan Steinman
http://www.dansteinman.com/dynduo/
SSS
bueeno
no seais duros conmigo soy un simple diseñador
me siento incapaz de hacer algo en JS desde cero
asi que los scripts de DW me parecen ok
si no tengo nada mejor
asi que me miraré esos de Steinman
gracias sgiraldo
quizas por esto mezclo tablas y divs (es pecado? :) )
me parece que en la pag, aparte de lo de los JS, el planteamiento de un div incrustado en una celda que señala una posicion del mapa que esta como img background es secillote y funciona.
asi escalo la ventana y se mueve todo el pack, la imagen del mapa no da la brasa desplazando el div a no se sabe ande...
gracias a todos
orange
No te preocupes Sergio, si no está mal, yo también las utilizo para algunas cosas que se me hacen pesadas.
Ahora en el curro no te pudo mirar tranquilamente eso, esta tarde a ver si le puedo echar un ojo.
orange
De todas formas Sergio, asi a bote pronto ¿lo que hace esa función de DW es mostrar / ocultar una capa, no?.
Si buscas esa solución lo que tendrías que hacer es tener tantos DIVs de puntos como fotos, y que cada rollover escondiese uno y mostrase otro.
Yo lo planteo de otra forma, tienes un solo DIV con el punto y lo mueves de sitio.
Tienes que quitar la funcion del rollover y meter la de ponPunto (o lo que hayas adaptado) que te mande.
sgiraldo
hola de nuevo sss,
mira, he aprovechado que no tenia ahora mismo curro y te he creado la página esa utilizando la dynlayer (por si no te aclaras con la web)
http://www.sgiraldo.com/zwork/prueba_sss.htm
Ya me dirás si era esto o no
meddle
sss,
la dynapi estaba muy bien hace 4 años para muchas cosas, pero ahora es obsoleta (opinion personal) y usar una api para lo que tu quieres es del todo exagerado.
te voy a preparar algo mas sencillo, que sea incluso automatico en cuanto a configuracion, ahora te cuento.
sgiraldo
hombre... para hacer esto.. se podría hacer sin cargar toda la dynapi.
Es como hacer simples botones con cambio en rollover mediante Flash, cuando se puede hacer con html.
SSS
gracias sgiraldo
eso que has hecho es exactamente lo que pretendia
pero estoy con meddle en que es un chorizo de JS bastante potente para solo utilizar una parte muy pequeña...
meddle
solamente otra pregunta. ¿estas seguro que quieres soporte para ie4 y ns4? Lo digo porque si te olvidas de ellos reducimos el codigo un huevo y ademas lo podemos hacer MUY elegantemente, ya veras...
SSS
problemas con NS4?... :)
seria interesante ver como se hace para los dos, pero vale si solo funciona en IE4+ ya que otras partes del web no valen para ns4
meddle
no, problemas no, solo que te ahorras codigo. yo personalmente paso de ns4 y ie4, pero eso depende de cada uno o del cliente, etc.
ahora te envio algo, dame 10 minutos.
orange
Ten en cuenta Sergio que esta hablando de IE y Ns versión 4! ... no de las últimas.
Yo soy un fan de los estandares y la compatibilidad, y paso de NS4 como de comer mierda, porque era un navegador pésimo, y su soporte CSS lamentable.
Yo inicio la cuenta en IE5 y NS6
SSS
perdon de nuevo, no habia leido correctamente
IE5 y NS6
es donde se va a ver
podemos pasar de los del 4 tranquilamente
y pasar a la opcion MUY elgante.
meddle
te vas a cagar, dame 10 minutos mas ;)
meddle
mira de momento me reservo la opcion elegante, tengo un problema con los eventos js y quiero afinar mas. Puedes sustituir las funciones que tenias de macromedia poor estas y cambiar los onmouseover / onmouseout a lo siguiente:
<code>function muestrame(x,y){
// mostramos el punto de señalizacion:
document.getElementById("punto").style.left = x + "px";
document.getElementById("punto").style.top = y + "px";
document.getElementById("punto").style.display = "block";
}
function esconde(){
// escondemos el punto de señalizacion:
document.getElementById("punto").style.display = "none";
}
</code>
cambia tambien el estilo de la capa punto, donde pone visibility:hidden debes poner display:none
Luego te paso la opcion elegante
Alter Ebro
una pregunta sobre la marcha, para que sirve exactamente la propiedad 'display' ??
un saludo
meddle
display sirve para especificar como debe mostrarse un bloque. las opciones son none (no se muestra), block (tipo bloque) o inline (en linea). Se puede por ejemplo forzar un elemento de bloque a que sea inline (menus a partir de listas, por ejemplo) o al reves.
La diferencia entre visibility:hidden y display:none es que la ultima no guarda el espacio que ocupa el elemento en la pagina. Es lo que usarias por ejemplo para tener bloques de informacion adicional o extra en un weblog que solo quieres mostrar cuando le das a un enlace, automaticamente apareceria el texto y todo lo demas bajaria a partir de ahi.
A lo largo del tiempo me he dado cuenta que al programar dhtml es mejor usar display que visibility por diversas razones que no sabria resumir y que no vienen al caso.