Comunidad de diseño web y desarrollo en internet online

Problema en código Javascript para mostrar una tooltip

Citar            
MensajeEscrito el 07 Oct 2011 08:43 pm
Hola a todos!
Tengo una duda con este código javascript y una tooltip que quiero mostrar. Les paso los códigos:
funciones.js

Código Javascript :

addEvent(window,'load',inicializarEventos,false);

function inicializarEventos()
{
  var vec=document.getElementsByTagName('div');
  for(f=0;f<vec.length;f++)
  {
    addEvent(vec[f],'mouseover',mostrarToolTip,false);
    addEvent(vec[f],'mouseout',ocultarToolTip,false);
    addEvent(vec[f],'mousemove',actualizarToolTip,false);
  }
  var ele=document.createElement('div');
  ele.setAttribute('id','divmensaje');
  vec=document.getElementsByTagName('body');
  vec[0].appendChild(ele);

}

function mostrarToolTip(e) 
{

  var d = document.getElementById("divmensaje");
  d.style.visibility = "visible";
  if (window.event) 
    e=window.event;
  d.style.left = e.clientX + document.body.scrollLeft - 45;
  d.style.top = e.clientY + document.body.scrollTop + 15;
  var ref;
  if (window.event)
    ref=window.event.srcElement;
  else
    if (e)
      ref=e.target;
  recuperarServidorTooltip(ref.getAttribute('id'));
}

function actualizarToolTip(e) 
{
  if (window.event) 
    e=window.event;
  var d = document.getElementById("divmensaje");
  d.style.left = e.clientX + document.body.scrollLeft - 45;
  d.style.top = e.clientY + document.body.scrollTop + 15;
}


function ocultarToolTip(e) 
{
  var d = document.getElementById("divmensaje");
  d.style.visibility = "hidden";
}

var conexion1;
function recuperarServidorTooltip(codigo) 
{
  conexion1=crearXMLHttpRequest();
  conexion1.onreadystatechange = procesarEventos;
  conexion1.open('GET','tooltip.php?id_producto='+codigo, true);
  conexion1.send(null);
}

function procesarEventos()
{
  var d = document.getElementById("divmensaje");
  d.style.visibility = "visible";
  if(conexion1.readyState == 4)
  {
    d.innerHTML=conexion1.responseText;
  } 
  else 
  {
    d.innerHTML = '<img src="cargando.gif">';
  }
}


Y tengo una página maquetada con varios divs, PERO el problema es que quiero que me muestre la TOOLTIP con foto y texto al poner el cursor sobre <div id="cont-foto">. Con el código de arriba me aparece la TOOLTIP al posicionarme sobre CUALQUIER DIV de mi pagina y lo que yo quiero es que el JS haga solo referencia sobre el div cont-foto:

Código HTML :

<div id="contenedor">
  <div id="menuprincipal">
    <div id="listadodeproductos">
       <div id="cont-foto"><img src="UNAFOTODEALGO.jpg" border="0" /></div>
    </div>
  </div>
</div> 

¿Qué tengo que modificar en el código JS para que solo tome el div cont-foto y no a todos como actualmente lo está haciendo?

No se pueden imaginar hace cuianto tiempo que estoy dando vueltas con esto.
Gracias a todos y saludos.
Picasso

Por Picasso

45 de clabLevel



Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 08 Oct 2011 03:33 am
Cambia:

Código Javascript :

var vec=document.getElementsByTagName('div');


por

Código Javascript :

var vec=document.getElementByID('cont-foto'); 

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 08 Oct 2011 12:50 pm
por que matarse haciendo un script tan largo yo ago los popup de este modo.!

<style>
.black_overlay {
display: none;
position: fixed;
top: 0%;
left: 0%;
width: 100%;
height: 100%;
background-color: #000;
z-index:1001;
opacity: 0.9;
opacity:.80;
filter: alpha(opacity=80);
}

.white_content {
display: none;
position: fixed;
top: 25%;
left: 25%;
width: 50%;
height: 50%;
padding: 16px;
border: 16px solid #222;
background-color: #fff;
z-index:1002;
overflow: auto;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
</style>

<div id="eliddetudiv" class="white_content"><div align="left"><a href = "javascript:void(0)" onclick = "document.getElementById('bv').style.display='none';document.getElementById('fade').style.display='none'">Close(x)</a></div><br><img src="un.jpg" width="100%" height="380" /></div>
<div id="fade" class="black_overlay"></div>

<a href ="javascript:void(0)" onclick ="document.getElementById('eliddetudiv').style.display='block';document.getElementById('fade').style.display='block'" >Abrir</a>

Por js_toni

93 de clabLevel



Genero:Masculino  

programar

firefox
Citar            
MensajeEscrito el 11 Oct 2011 01:36 pm

The Fricky! escribió:

Cambia:

Código Javascript :

var vec=document.getElementsByTagName('div');


por

Código Javascript :

var vec=document.getElementByID('cont-foto'); 

The Fricky! : Nop amigo... no funcionó. No hace nada.

js_toni: gracias por responder tú también, pero la idea de este código que coloqué es para mostrar una tooltip por donde pase el mouse y no para abrir un popup.

Gracias y espero puedan seguir colaborando con esta humilde causa.

Saludos. MArx.

Por Picasso

45 de clabLevel



Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 11 Oct 2011 06:19 pm
e.e me confundi de cosa lei mal estaba mal...

por sierto puedes hacer solo con css una tooltips con span de este modo

<a href="#" class="tool">Hola me llamo Jstoni<span>Tengo 18 años</span></a>

<style>
a.tool span {
display:none;
padding: 2px 3px;
margin-left:12px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
z-index:+1;
text-decoration: none;
}

a.tool:hover span {
display: inline;
position: absolute;
opacity: .9;
font-size: 12px;
background: #000;
color: #fff;
border: #000 solid 1px;
text-decoration: none;
}
</style>

si lo vees muy simple tambien de este modo
<style>
.tool
{
position: relative;
display: inline-block;
text-decoration: none;
outline: none;
}

.tool span
{
visibility: hidden;
position: absolute;
bottom: 25px;
z-index: 999;
margin-left: -100px;
padding: 8px;
opacity: .9;
background-color: #123;
-moz-border-radius: 4px;
border-radius: 4px;
color: #fff;
-webkit-box-shadow: inset 1px -1px 3px #000, 2px 2px 3px #000;
-moz-box-shadow: inset 1px -1px 2px #000, 2px 2px 3px #000;
}

.tool:hover
{
border: 0;
}

.tool:hover span
{
visibility: visible;
}

.tool span:before,
.tool span:after
{
content: "";
position: absolute;
z-index: 999;
bottom: -7px;
opacity: .9;
left: 50%;
margin-left: -8px;
border-top: 8px solid #123;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
}

.tool span:before
{
border-top-color: #000;
bottom: -8px;
}</style>

que mas a mi personalmente no me gusta usar script framework de otros sitios :D

si no kieres algo simple nomas pide por esa boca, suerte eso si es una tooltips.

saludos

Por js_toni

93 de clabLevel



Genero:Masculino  

programar

firefox
Citar            
MensajeEscrito el 11 Oct 2011 06:31 pm
Jstoni: muchísimas gracias por responder. Me pareció muy interesante lo que escribiste pero justamente el tema de mi pedido es porque el código que puse sirve para mostrar el contenido de una bdd al pasar la flechita por arriba en una tooltip. El link enviaría un código id y éste me devolvería el resto de los datos en la tooltip. Esa es la idea y con eso estoy luchando.

Por supuesto te agradezco mucho lo que posteaste y me lo guardo para utilizarlo a futuro.

Gracias y saludos.

Por Picasso

45 de clabLevel



Genero:Masculino  

Programador Web

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.