Foros del Web » Programando para Internet » Javascript »

Efecto onmouseover con imagen asociada

Estas en el tema de Efecto onmouseover con imagen asociada en el foro de Javascript en Foros del Web. Hola a todos, necesito hacer un efecto de forma que al poner el ratón encima de una imágen o un link, apareciese una imagen al ...
  #1 (permalink)  
Antiguo 06/06/2008, 02:54
 
Fecha de Ingreso: mayo-2008
Mensajes: 6
Antigüedad: 16 años
Puntos: 0
Efecto onmouseover con imagen asociada

Hola a todos,

necesito hacer un efecto de forma que al poner el ratón encima de una imágen o un link, apareciese una imagen al lado del ratón.

Sería algo como aparece en los iconos de ayuda, que sale en la solicitud de presupuesto de

http://www.imprimaonline.com


alguien sabría como hacerlo

Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 06/06/2008, 08:15
 
Fecha de Ingreso: septiembre-2005
Mensajes: 840
Antigüedad: 18 años, 7 meses
Puntos: 84
Respuesta: Efecto onmouseover con imagen asociada

tendrias q crear un div con posicion absoluta y de normal de forma oculta.

Luego, en la imagen o el link, tendrias q ponerle que, on mouseOver, el div cogiera las coordenadas del raton y dejara d estar oculto.

En el MouseOut, volverias a ponerlo oculto.

;)
__________________
» Presupuesto Pagina Web
  #3 (permalink)  
Antiguo 06/06/2008, 09:58
 
Fecha de Ingreso: mayo-2008
Mensajes: 6
Antigüedad: 16 años
Puntos: 0
Respuesta: Efecto onmouseover con imagen asociada

no, nada de capas, en un principio lo tenia así, pero dan más problemas de los que resuelve XD, gracias de todos modos por la respuesta

ya encontre un modo de hacerlo y bastante bueno

para el que le interese:

Codigo entre <head></head>

<script type="text/javascript">

/***********************************************
* Image w/ description tooltip- By Dynamic Web Coding (www.dyn-web.com)
* Copyright 2002-2007 by Sharon Paine
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

/* IMPORTANT: Put script after tooltip div or
put tooltip div just before </BODY>. */

var dom = (document.getElementById) ? true : false;
var ns5 = (!document.all && dom || window.opera) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ie4 && !ie5 && !dom) ? true : false;

var origWidth, origHeight;

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }

/////////////////////// CUSTOMIZE HERE ////////////////////
// settings for tooltip
// Do you want tip to move when mouse moves over link?
var tipFollowMouse= true;
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 160;
var offX= -80; // how far from mouse to show tip
var offY= 20;
var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
var tipFontSize= "8pt";
// set default text color and background color for tooltip here
// individual tooltips can have their own (set in messages arrays)
// but don't have to
var tipFontColor= "";
var tipBgColor= "";
var tipBorderColor= "#000000";
var tipBorderWidth= 0;
var tipBorderStyle= "ridge";
var tipPadding= 0;

// tooltip content goes here (image, description, optional bgColor, optional textcolor)
var messages = new Array();
// multi-dimensional arrays containing:
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip
messages[0] = new Array('img/pictoimpresiondigital.png','');
messages[1] = new Array('img/pictogranformato.png','');
messages[2] = new Array('img/pictosistemas.png','');
messages[3] = new Array('img/pictodiseno.png','');

//////////////////// END OF CUSTOMIZATION AREA ///////////////////

// preload images that are to appear in tooltip
// from arrays above
if (document.images) {
var theImgs = new Array();
for (var i=0; i<messages.length; i++) {
theImgs[i] = new Image();
theImgs[i].src = messages[i][0];
}
}

// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';

////////////////////////////////////////////////////////////
// initTip - initialization for tooltip.
// Global variables for tooltip.
// Set styles
// Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
if (nodyn) return;
tooltip = (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
tipcss = tooltip.style;
if (ie4||ie5||ns5) { // ns4 would lose all this on rewrites
tipcss.width = tipWidth+"px";
tipcss.fontFamily = tipFontFamily;
tipcss.fontSize = tipFontSize;
tipcss.color = tipFontColor;
tipcss.backgroundColor = tipBgColor;
tipcss.borderColor = tipBorderColor;
tipcss.borderWidth = tipBorderWidth+"px";
tipcss.padding = tipPadding+"px";
tipcss.borderStyle = tipBorderStyle;
}
if (tooltip&&tipFollowMouse) {
document.onmousemove = trackMouse;
}
}

window.onload = initTip;

/////////////////////////////////////////////////
// doTooltip function
// Assembles content for tooltip and writes
// it to tipDiv
/////////////////////////////////////////////////
var t1,t2; // for setTimeouts
var tipOn = false; // check if over tooltip link
function doTooltip(evt,num) {
if (!tooltip) return;
if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
tipOn = true;
// set colors if included in messages array
if (messages[num][2]) var curBgColor = messages[num][2];
else curBgColor = tipBgColor;
if (messages[num][3]) var curFontColor = messages[num][3];
else curFontColor = tipFontColor;
if (ie4||ie5||ns5) {
var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
tipcss.backgroundColor = curBgColor;
tooltip.innerHTML = tip;
}
if (!tipFollowMouse) positionTip(evt);
else t1=setTimeout("tipcss.visibility='visible'",70);
}

var mouseX, mouseY;
function trackMouse(evt) {
standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
if (tipOn) positionTip(evt);
}

/////////////////////////////////////////////////////////////
// positionTip function
// If tipFollowMouse set false, so trackMouse function
// not being used, get position of mouseover event.
// Calculations use mouseover event position,
// offset amounts and tooltip width to position
// tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
if (!tipFollowMouse) {
standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body
mouseX = (ns5)? evt.pageX: window.event.clientX + standardbody.scrollLeft;
mouseY = (ns5)? evt.pageY: window.event.clientY + standardbody.scrollTop;
}
// tooltip width and height
var tpWd = (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
var tpHt = (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
// document area in view (subtract scrollbar width for ns)
var winWd = (ns5)? window.innerWidth-20+window.pageXOffset: standardbody.clientWidth+standardbody.scrollLeft;
var winHt = (ns5)? window.innerHeight-20+window.pageYOffset: standardbody.clientHeight+standardbody.scrollTop;
// check mouse position against tip and window dimensions
// and position the tooltip
if ((mouseX+offX+tpWd)>winWd)
tipcss.left = mouseX-(tpWd+offX)+"px";
else tipcss.left = mouseX+offX+"px";
if ((mouseY+offY+tpHt)>winHt)
tipcss.top = winHt-(tpHt+offY)+"px";
else tipcss.top = mouseY+offY+"px";
if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",70);
}

function hideTip() {
if (!tooltip) return;
t2=setTimeout("tipcss.visibility='hidden'",70);
tipOn = false;
}

document.write('<div id="tipDiv" style="position:absolute; visibility:hidden; z-index:100"></div>')

</script>



codigo para los links



<td><a href="digital.htm" onmouseover="doTooltip(event,0)" onmouseout="hideTip()"><img src="img/bot_impresion_digital.jpg" width="138" height="37" border="0" class="menudigital"></a></td>
<td><a href="granformato.htm" onmouseover="doTooltip(event,1)" onmouseout="hideTip()"><img src="img/bot_gran_formato.jpg" width="141" height="37" border="0" class="menudigital"></a></td>
<td><a href="exposicion.htm" onmouseover="doTooltip(event,2)" onmouseout="hideTip()"><img src="img/bot_sistemas_exposicion.jpg" width="142" height="37" border="0"></a></td>
<td><a href="diseno.htm" onmouseover="doTooltip(event,3)" onmouseout="hideTip()"><img src="img/bot_diseno.jpg" width="137" height="37" border="0"></a></td>
  #4 (permalink)  
Antiguo 06/06/2008, 10:59
 
Fecha de Ingreso: marzo-2008
Mensajes: 306
Antigüedad: 16 años, 1 mes
Puntos: 6
Respuesta: Efecto onmouseover con imagen asociada

El inconveniente de lo anterior es que necesita Javascript y algunos usuarios (pocos) lo tienen desactivado. Además supone un significativo incremento en el tamaño de la página.

Si te interesa puedes hacerlo solo con CSS. Tienes un ejemplo aqui: http://www.araudi.net/forosdelweb/fotos.html
__________________
Pop & Rock Bands
Pop Music Stars
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 21:11.