Foros del Web » Programando para Internet » Javascript »

Posicion del mouse para aplicarlo a un layer

Estas en el tema de Posicion del mouse para aplicarlo a un layer en el foro de Javascript en Foros del Web. Hola señores Prepare un script que automaticamente lee todos los objetos de la pagina que tengan el atributo "title", borra el atributo y al hacer ...
  #1 (permalink)  
Antiguo 06/01/2010, 00:10
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 10 meses
Puntos: 7
Posicion del mouse para aplicarlo a un layer

Hola señores

Prepare un script que automaticamente lee todos los objetos de la pagina que tengan el atributo "title", borra el atributo y al hacer "onmouseover" sobre los objetos, se muestra un tooltip con el contenido de title.

El script hace lo que debe, pero tengo problemas para hacer que se posicione junto al mouse, quizas porque no interprete bien el codigo de donde tome esa parte, en esta pagina.

Aqui el script tal como lo tengo, a ver si me sugieren en que puedo estar mal:

Código PHP:
function setAllTitles ()
{
    var 
objs document.getElementsByTagName('*');
    
//
    
for (var 0objs.lengthi++)
    {
       if (
objs[i].title)
       {
          
showTT (objs[i]);
       }
    }
    
//
    
function showTT (ob)
    {
       var 
tit ob.title;
       
ob.removeAttribute ("title");
       
//
       
ob.onmouseover = function ()
       {
          var 
tt document.createElement ('div');
          
tt.style.backgroundColor '#000';
          
tt.style.fontSize '9px';
          
tt.style.color '#FFF';
          
tt.style.border 'solid 1px #FFF';
          
tt.style.padding '6px 6px 4px 6px';
          
tt.style.position 'fixed';
          
tt.style.zIndex '5000';
          
tt.style.borderRadius '4px';
          
tt.style.MozBorderRadius '4px';
          
tt.style.WebkitBorderRadius '4px';
          
tt.style.KhtmlBorderRadius '4px';
          
tt.id 'lyrtooltip';
          
tt.innerHTML tit;
          
document.body.appendChild (tt);
          
tt.style.zoom 1;
          
//
          // Calcular posicion del mouse
          //
          
var posx 0posy 0;
          var 
window.event;
          
// 
          
if (e.pageX || e.pageY)
          {
             
posx e.pageX;
             
posy e.pageY;
          }
          else if (
e.clientX || e.clientY)
          {
             
posx e.clientX document.body.scrollLeft document.documentElement.scrollLeft;
             
posy e.clientY document.body.scrollTop document.documentElement.scrollTop;
          }
          
//
          
tt.style.top parseInt (posy) + 'px';
          
tt.style.left parseInt (posx) + 'px';
       }
       
//
       
ob.onmouseout = function ()
       {
          
document.body.removeChild (document.getElementById('lyrtooltip'));
       }
    }

__________________
JuniHH
- Mi blog
- Mi portafolio

Última edición por junihh; 06/01/2010 a las 00:15
  #2 (permalink)  
Antiguo 06/01/2010, 00:33
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: Posicion del mouse para aplicarlo a un layer

en iexplorer funciona. en otros navegadores no funciona porque no estas obteniendo correctamente el objeto evento que contiene la informacion. a continuacion los cambios que necesitas.
Código:
...
       ob.onmouseover = function (e)
...
          var e = e || window.event;
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 06/01/2010, 07:45
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 10 meses
Puntos: 7
Respuesta: Posicion del mouse para aplicarlo a un layer

SI, FUNCIONO !!!. Es que a diferencia del original en mi caso yo no llamaba una funcion externa, por eso crei que no seria necesario agregar "e" ya que seria el papel de "window.event". Lo cierto es que no lo he probado en IE, solo en Firefox.

Muchisimas gracias @zerokilled y un gran saludo para ti.
__________________
JuniHH
- Mi blog
- Mi portafolio

Etiquetas: layer, mouse, posicion
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 07:29.