Foros del Web » Programando para Internet » Javascript »

Problemas con caja que sigue al ratón

Estas en el tema de Problemas con caja que sigue al ratón en el foro de Javascript en Foros del Web. Hola amigos. Tengo este código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function sigueme ( e ) {     var x = ( document. ...
  #1 (permalink)  
Antiguo 06/07/2011, 06:47
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Exclamación Problemas con caja que sigue al ratón

Hola amigos. Tengo este código:

Código Javascript:
Ver original
  1. function sigueme(e) {
  2.     var x = (document.layers || !document.all)? e.pageX : event.x+document.body.scrollLeft;
  3.     var y = (document.layers || !document.all)? e.pageY : event.y+document.body.scrollTop;
  4.     var x2 = x + 10;
  5.     var y2 = y + 10;
  6.    
  7.     document.getElementById('siguelo').style.left=x2+'px';
  8.     document.getElementById('siguelo').style.top=y2+'px';
  9.    
  10.     return true
  11. }
  12.  
  13.  
  14. function muestrame(texto) {
  15.  
  16.     document.onmousemove = sigueme;
  17.    
  18.     document.getElementById('siguelo').innerHTML=texto;
  19.     /*if (navigator.appName=="Microsoft Internet Explorer") {
  20.    
  21.         document.getElementById('siguelo').style.position='absolute';
  22.    
  23.     } else {
  24.    
  25.         document.getElementById('siguelo').style.position='fixed';
  26.    
  27.     }*/
  28.  
  29.     document.getElementById('siguelo').style.display='block';
  30.     if (document.layers) { document.captureEvents(Event.MOUSEMOVE); }
  31. }
  32.  
  33.  
  34. function quitame() {
  35.     document.getElementById('siguelo').style.display='none';
  36. }

Como véis hay un trozo comentado y es que tengo problemas para visualizar la caja que sigue al ratón en internet explorer.

Si la position es absoluta, internet explorer no pilla bien las coordenadas x e y del ratón , en cambio firefox sí, pero para que funcione en los dos tengo que ponerle fixed a firefox, el cual es un problema porque al hacer scroll nunca queda al lado del ratón.

Pueden probarlo aquí:

http://213.60.40.182/gap-dev/index.php

al ponerse encima de los títulos de ARTÍCULOS QUE INTERESAN. El código está en el script Funciones.js

Entonces, cómo hago para que funcione correctamente en todos los navegadores ? Al menos que funcione igual.

Saludos y gracias.

edición:

he probado con esto:

Código Javascript:
Ver original
  1. function sigueme(e) {
  2.     var x = e.clientX + 15;
  3.     var y = e.clientY + 15;
  4.    
  5.     document.getElementById('siguelo').style.left = x + 'px';
  6.     document.getElementById('siguelo').style.top = y + 'px';
  7.    
  8.     return true;
  9. }

pero en IE 8 se queda la capa arriba a la izquierda sin solución posible.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Última edición por CHuLoSoY; 06/07/2011 a las 08:39
  #2 (permalink)  
Antiguo 06/07/2011, 12:05
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Problemas con caja que sigue al ratón

Fijate si esto te da alguna idea:
Código PHP:
<!DOCTYPE html>
<
html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Documento sin título</title>
<
style>
*{
margin:0padding:0}
#tip{ position:absolute; width:300px; height:30px; border:1px solid #000; background:#C93; font-family:Verdana, Geneva, sans-serif; font-size:10px; padding:5px; top:-1500px}
</style>
<
script type="text/javascript">
var 
ns={};
function 
addEvent(obj,fun,type){ 
    if(
obj.addEventListener){ 
        
obj.addEventListener(type,fun,false); 
    }else if(
obj.attachEvent){ 
        var 
f=function(){ 
            
fun.call(obj,window.event); 
        } 
        
obj.attachEvent('on'+type,f); 
        
obj[fun.toString()+type]=f
    }else{ 
        
obj['on'+type]=fun
    } 
}  
function 
t(id){return document.getElementById(id);}
function 
showTip(e){
    var 
x=e.clientX+(self.pageXOffset || (document.body.scrollLeft+document.documentElement.scrollLeft))+10;
    var 
y=e.clientY+(self.pageYOffset || (document.body.scrollTop+document.documentElement.scrollTop))+10;
    
t('tip').style.top=y+'px';
    
t('tip').style.left=x+'px';
    var 
obj=e.srcElement || e.target;
    
t('tip').innerHTML=ns[obj.id];
}
function 
hideTip(){
    
t('tip').style.top='-1500px';
}
function 
addTip(id,txt){
     
ns[id]=txt;
     
addEvent(t(id),showTip,'mousemove');
     
addEvent(t(id),hideTip,'mouseout');
    
}
addEvent(window,function(){
        
addTip('uno','ir a google');
        
addTip('dos','ir a foros del web');
    },
'load');
</script>
</head>

<body>
<div id="tip"></div>
<a id="uno" href="http://google.com">ejemplo 1</a><br />
<a id="dos" href="http://forosdelweb.com">ejemplo 2</a>
</body>
</html> 

Etiquetas: caja, html, js, php
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




La zona horaria es GMT -6. Ahora son las 01:39.