Foros del Web » Programando para Internet » Javascript »

Info al pasar por encima

Estas en el tema de Info al pasar por encima en el foro de Javascript en Foros del Web. Hola, he hecho este código: Código HTML: <script language= "JavaScript" > <!-- function mouseMove(e) { var x = (document.layers)? e.pageX : event.x+document.body.scrollLeft var y = ...
  #1 (permalink)  
Antiguo 30/01/2009, 17:18
 
Fecha de Ingreso: abril-2007
Mensajes: 213
Antigüedad: 17 años
Puntos: 0
Info al pasar por encima

Hola, he hecho este código:

Código HTML:
<script language="JavaScript">
<!--
function mouseMove(e) {
var x = (document.layers)? e.pageX : event.x+document.body.scrollLeft
var y = (document.layers)? e.pageY : event.y+document.body.scrollTop
var x2 = x + 15;
var y2 = y + 15;

document.getElementById('Layer1').style.left=''+x2;
document.getElementById('Layer1').style.top=''+y2;

return true
}
function init(titulo,texto) {
document.onmousemove = mouseMove;
if(titulo == "") {
document.getElementById('Layer1').innerHTML='<div class="textodespues">'+texto+'<\/div>';
}
else {
document.getElementById('Layer1').innerHTML='<div class="titlelayer1">'+titulo+'<\/div><div class="textodespues">'+texto+'<\/div>';
}
document.getElementById('Layer1').style.display='block';
if (document.layers) document.captureEvents(Event.MOUSEMOVE);
}
function quitar() {
document.getElementById('Layer1').style.display='none';
}
// -->
</script>

<style type="text/css">
<!--
#Layer1 {
	position:absolute;
	width:300px;
	background-color:#333333;
	font-family:Verdana, Arial, Helvetica, sans-serif;
	font-size:10px;
	color:#FFFFFF;
	border:1px solid #CCCCCC;
	z-index:1;
}
.titlelayer1 {
background-color:#CCCCCC;
color:#333333;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:10px;
padding:5px;}
.textodespues {
padding:5px;}
-->
</style>
<div id="asd"></div>
<a onMouseOver="init('Titulo aqui','El texto de informacion ira en este cuadro.')" onMouseOut="quitar();">asdasdasdads</a>
<div id="Layer1" style="display:none;"></div> 
Al pasar por encima del texto sale un mensaje que sigue al raton, hasta ahi todo bien el problema es que funciona en todos los navegadores excepto en FIREFOX, funciona en opera, en internet explorer, en safari, en safari ipod... pero no en el firefox, si me pudierais ayudar, el problema creo que esta en:

document.onmousemove = mouseMove;

Pero no estoy seguro
  #2 (permalink)  
Antiguo 30/01/2009, 17:34
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Info al pasar por encima

Bueno , podrias empezar por cambiarle el nombre a la funcion para que no sea igual al nombre del evento, e inidicar que es lo que sumas:

Cita:
left=''+x2+"px";
  #3 (permalink)  
Antiguo 30/01/2009, 18:06
 
Fecha de Ingreso: abril-2007
Mensajes: 213
Antigüedad: 17 años
Puntos: 0
Respuesta: Info al pasar por encima

¿Que nombre se repite?
  #4 (permalink)  
Antiguo 30/01/2009, 23:11
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Info al pasar por encima

Hola,

Además de 'px' (como menciona programeitor), prueba a cambiar :

var x = (document.layers || !document.all)? e.pageX : event.x+document.body.scrollLeft;
var y = (document.layers || !document.all)? e.pageY : event.y+document.body.scrollTop;

Saludos,

Última edición por HackmanC; 30/01/2009 a las 23:18 Razón: borrar layers
  #5 (permalink)  
Antiguo 31/01/2009, 06:51
 
Fecha de Ingreso: abril-2007
Mensajes: 213
Antigüedad: 17 años
Puntos: 0
Respuesta: Info al pasar por encima

Muchas gracias ya funciona perfectamente, por si alguien lo quiere el codigo funcionando es:

Código HTML:
<script language="JavaScript">
<!--
function mouseMove(e) {
var x = (document.layers || !document.all)? e.pageX : event.x+document.body.scrollLeft;
var y = (document.layers || !document.all)? e.pageY : event.y+document.body.scrollTop;
var x2 = x + 15;
var y2 = y + 15;

document.getElementById('Layer1').style.left=''+x2+'px';
document.getElementById('Layer1').style.top=''+y2+'px';

return true
}
function init(titulo,texto) {
document.onmousemove = mouseMove;
if(titulo == "") {
document.getElementById('Layer1').innerHTML='<div class="textodespues">'+texto+'<\/div>';
}
else {
document.getElementById('Layer1').innerHTML='<div class="titlelayer1">'+titulo+'<\/div><div class="textodespues">'+texto+'<\/div>';
}
document.getElementById('Layer1').style.display='block';
if (document.layers) document.captureEvents(Event.MOUSEMOVE);
}
function quitar() {
document.getElementById('Layer1').style.display='none';
}
// -->
</script>

<style type="text/css">
<!--
#Layer1 {
	position:absolute;
	width:300px;
	background-color:#333333;
	font-family:Verdana, Arial, Helvetica, sans-serif;
	font-size:10px;
	color:#FFFFFF;
	border:1px solid #CCCCCC;
	z-index:1;
}
.titlelayer1 {
background-color:#CCCCCC;
color:#333333;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size:10px;
padding:5px;}
.textodespues {
padding:5px;}
-->
</style>
<div id="asd"></div>
<a onMouseOver="init('Titulo aqui','El texto de informacion ira en este cuadro.')" onMouseOut="quitar();">asdasdasdads</a>
<div id="Layer1" style="display:none;"></div> 
  #6 (permalink)  
Antiguo 13/10/2010, 03:30
 
Fecha de Ingreso: febrero-2010
Mensajes: 105
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Info al pasar por encima

Entiendo que sea un post viejo, pero veo que se puede aprovechar para mucho este post,
para mi es magnifico.
Tengo una pregunta sobre el,.

De que manera puedo hacer saltar el evento del raton para que se produzca cuando el ratón se mueve sobre toda la página y no cuendo se mueve sobre la etiqueta?

Muchas gracias de antemano
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:28.