Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/10/2008, 15:19
Masane
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 2 meses
Puntos: 0
Scroll en div

Hola. He conseguido hacer yo solita un par de flechitas que hacen scroll sobre un div (me ha costado sudor y sangre porque soy súper novata con JavaScript). Usando un setInterval y un clearInterval, arranco y detengo el scroll, pero me gustaría que el setInterval llamara al clearInterval cuando el scrollTop llega al límite del div. Por si no me explico bien (que me suele pasar), os pongo el código y luego os explico lo que me gustaría "arreglar".

Código HTML:
<script>
posicion = 0;

function mover(direccion)
{             
   if (direccion == "subir")
   {
      setImagenOnOff('flecha_up', 'on', 'jpg'); 
      flecha = setInterval("subir()", 50);
   }
   else if (direccion == "bajar")
   {
      setImagenOnOff('flecha_bottom', 'on', 'jpg');
      flecha = setInterval("bajar()", 50);
   }
}

function detener()
{
   clearInterval(flecha);
   setImagenOnOff('flecha_up', 'off', 'jpg');
   setImagenOnOff('flecha_bottom', 'off', 'jpg');
}

function subir()
{
  posicion -= 3;
  document.getElementById("contenidos").scrollTop = posicion;
   // llamar a detener() si llega al principio del div
}

function bajar()
{
  posicion += 3;
  document.getElementById("contenidos").scrollTop = posicion;
  // llamar a detener() si llega al div del div
}
</script> 
Bien, creo que ahora quedó más claro ^^Uu... Lo que quiero es, donde pongo los comentarios, meter alguna función o algo para llamar a la función detener(), y que deje de sumar o restar a "posicion", porque me ha pasado, de llegar al final del div, y dejar el puntero sobre la flecha, y seguir sumandole a "posicion", y luego, para subir al principio del div, he tenido que dejar el raton el mismo rato que estuvo encima de la flecha para bajar, para poder empezar a restarle a "posicion". Una lata, vamos. Hay alguna manera de saber la "longitud" del div aún usando "overflow: hidden" y un height fijo? o hay algun atributo del div o algo para preguntar algo como "if(div.scrollTop == div.endOfDiv)"???

Estoy súper perdida con esto ^^Uu