Foros del Web » Programando para Internet » Javascript »

Problema con firefox

Estas en el tema de Problema con firefox en el foro de Javascript en Foros del Web. Hola, Tengo un script que utilizo para ampliar una imagen al pasar el raton. La imagen queda dentro de un marco; el problema es que ...
  #1 (permalink)  
Antiguo 14/05/2008, 10:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 35
Antigüedad: 16 años, 9 meses
Puntos: 0
Problema con firefox

Hola,
Tengo un script que utilizo para ampliar una imagen al pasar el raton. La imagen queda dentro de un marco; el problema es que en firefox la imagen se amplía al 100% pero el marco no, y siempre queda mas pequeño; esto hace que dé una apariencia bastante fea. En IE funciona bien.

Alguien puede decirme como puedo corregir esto?


El script es el siguiente:
Cita:
<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= 220;
var offX= 20; // how far from mouse to show tip
var offY= 12;
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= "#000000";
var tipBgColor= "#DDECFF";
var tipBorderColor= "#000080";
var tipBorderWidth= 3;
var tipBorderStyle= "ridge";
var tipPadding= 4;

// 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



// 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,messages) {
if (!tooltip) return;
if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
tipOn = true;
// set colors if included in messages array
curBgColor = tipBgColor;
curFontColor = tipFontColor;
if (ie4||ie5||ns5) {
var tip = startStr + messages + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + '' + '</span>' + endStr;
tipcss.backgroundColor = curBgColor;
tooltip.innerHTML = tip;
}
if (!tipFollowMouse) positionTip(evt);
else t1=setTimeout("tipcss.visibility='visible'",100);
}

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) {
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'",100);
}

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

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

</script>
Gracias de antemano.
  #2 (permalink)  
Antiguo 15/05/2008, 01:16
 
Fecha de Ingreso: febrero-2008
Mensajes: 35
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Problema con firefox

He conseguido resolver el problema de los marcos, ahora lo que me gustaría es redimensionar la imagen, ya que siempre se muestra al 100% y cuando se trata de una imagen grande parte de ella queda fuera de la ventana.

He intentado copiar algunos script de los que se publican por aquí, pero hasta ahora no me han funcionado.

¿Alguna idea para solucionarlo?

Tambien he observado que a veces la imagen queda debajo de la barra del navegador, como de fondo.

¿se puede evitar esto?


A ver si podeis hecharme una mano.
Slds.
  #3 (permalink)  
Antiguo 26/05/2008, 02:16
 
Fecha de Ingreso: febrero-2008
Mensajes: 35
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problema con firefox

Me respondo y de paso subo el post.

He conseguido redimensionar las imagenes, poniendo una medida fija en pixel(ancho o alto)en la tabla del script y la imagen se redimensiona proporcionalmente, el problema es que se redimensiona siempre, incluso cuando el tamaño real es menor que la medida fijada, con lo cual hace un zoom y sale pixelada.

Estoy hablando de esto:
Código HTML:
var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="'; 
var midStr = '" border="0"; height="400"></td></tr><tr><td valign="top">'; 
var endStr = '</td></tr></table>';
He intentado poner un % pero no funciona, siempre sale una imagen pequeña que nada tiene que ver con el % fijado.
Otra cosa que he observado es que siempre que se redimensiona se pierde calidad en la imagen.

Pregunto.
¿hay alguna forma de poner un % en el script y que funcione correctamente?
¿como puedo evitar la perdida de calidad en la imagen?
¿Alguna otra forma de redimensionar aparte del % o medida fija?

Aunque mis preguntas puedan parecer un tanto absurdas, esque soy novato en este tipo de programación y toda ayuda será bien recibida.



Slds.
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 04:50.