Foros del Web » Programando para Internet » Javascript »

No me funciona en Opera

Estas en el tema de No me funciona en Opera en el foro de Javascript en Foros del Web. Alguien me puede ayudar a arreglar este codigo para que me funcione en opera , el error que sale es el siguiente: CSS - http://localhost/sinco-a/reloj/ejempo.html ...
  #1 (permalink)  
Antiguo 18/09/2007, 11:23
 
Fecha de Ingreso: noviembre-2004
Ubicación: Valle del cauca / Cali
Mensajes: 112
Antigüedad: 19 años, 5 meses
Puntos: 1
Pregunta No me funciona en Opera

Alguien me puede ayudar a arreglar este codigo para que me funcione en opera , el error que sale es el siguiente:

CSS - http://localhost/sinco-a/reloj/ejempo.html
DOM style property
Invalid value for property: width
Line 1:
NaNpx
-----^
CSS - http://localhost/sinco-a/reloj/ejempo.html
DOM style property
Invalid value for property: left
Line 1:
NaNpx
-----^





<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<style type="text/css">
.d1 {
position:absolute;
clear:both;
top:0;
left:0%;
width:50%;
height:100%;
background-color:#666666;
overflow:auto;
}
.d2 {
position:absolute;
top:0;
clear:both;
left:51%;
width:50%;
height:100%;
background-color:#e6e6e6;
overflow:auto;
}
#hr
{
cursor:pointer;
left:50%;
position:absolute;
}
</style>

<script type="text/javascript">
var startpos, diffpos=0;
var erlaubt = false;
function Position(Ereignis)
{
//alert("alerta 1");
if (!document.all)
startpos = Ereignis.screenX + diffpos;
else
startpos = event.clientX + diffpos;
erlaubt = true;
return false;
}

function Aktion(Ereignis)
{
//alert("alerta 2");
erlaubt = false;
return false;
}

function NeuPos(Ereignis)
{
alert(erlaubt);
if (erlaubt)
{
alert("alerta 3");
if (!document.all)
jetztpos = Ereignis.screenX;
else
jetztpos = event.clientX;
diffpos = startpos-jetztpos;

if (diffpos > -400 && diffpos < 400)
{
tamano = (document.width/2);
//alert (startpos);
document.getElementById("d1").style.width = (tamano - diffpos) + "px";
document.getElementById("d2").style.width = (tamano + diffpos) + "px";
document.getElementById("d2").style.left = (tamano + 0 - diffpos) + "px";
document.getElementById("hr").style.left = (tamano + 0 - diffpos) + "px";
}
}
}

function setevent()
{
document.getElementById("hr").onmousedown = Position;
document.onmouseup = Aktion;
document.onmousemove = NeuPos;
}

</script>

<head>
<title>Redimensionar capas</title>
</head>
<body onload="setevent()">
<div id="principal">
<div class="d1" id="d1">
Este seria el contenido de una capa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx<b r />
<br />
<br />
Mas conenido
</div>
<div class="d2" id="d2">
Este seria el contido de otra capa<br />
<br />
<br />
Mas conenido
</div>
<hr width="4" size="100%" class="hr" id="hr" />
</div>
</body>
</html>
  #2 (permalink)  
Antiguo 19/09/2007, 06:12
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: No me funciona en Opera

No pongas todo el código si el problema está identificado en un par de líneas,
Código:
document.getElementById("d1").style.width = (tamano - diffpos) + "px";
document.getElementById("d2").style.width = (tamano + diffpos) + "px";
document.getElementById("d2").style.left = (tamano + 0 - diffpos) + "px";
document.getElementById("hr").style.left = (tamano + 0 - diffpos) + "px";
Opera te dice que el resultado de
Código:
(tamano + diffpos)
no es un número (NaN). Supongo que la suma de 0 es para convertir el valor de tamano a entero (o número). Para eso existen parseInt y parseFloat

Código:
document.getElementById("hr").style.left = ( parseInt(tamano) - parseInt(diffpos) ) + "px";
Probá eso a ver qué tal.


Saludos.
  #3 (permalink)  
Antiguo 19/09/2007, 09:00
 
Fecha de Ingreso: noviembre-2004
Ubicación: Valle del cauca / Cali
Mensajes: 112
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: No me funciona en Opera

Gracias , voy a hacer las respectivas pruebas, que pena, pero ya estaba bloqueado con este problemita.....
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 23:21.