Foros del Web » Programando para Internet » Javascript »

ayuda onmouseup y onmousedown

Estas en el tema de ayuda onmouseup y onmousedown en el foro de Javascript en Foros del Web. Buenas.. a ver si algun crack del javascript puede ayudarme con esto. Resulta que tengo un script que hace scroll a una etiqueta <div> con ...
  #1 (permalink)  
Antiguo 31/01/2009, 05:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 7 meses
Puntos: 0
ayuda onmouseup y onmousedown

Buenas.. a ver si algun crack del javascript puede ayudarme con esto.
Resulta que tengo un script que hace scroll a una etiqueta <div> con el atributo overflow: hidden. Pues resulta que si utilizo los eventos onmouseup y onmousedown para el boton subir y bajar, todo bien, pero no se porque si me da por arrastrar el boton de up o de down(son dos imagenes) el scroll empieza a ir solo, y cada vez que arrastro aumenta la velocidad. Que puede seR??? les pongo el codigo, gracias!

aqui el codigo xhtml:
<p id="biography" class="text"><?php echo $biography ?></p>
<a href="javascript:;" title="<?php echo $up ?>"><img src="img/up.gif" alt="<?php echo $up ?>" class="scroller" id="up" /></a>
<a href="javascript:;" title="<?php echo $down ?>"><img src="img/down.gif" alt="<?php echo $down ?>" class="scroller" id="down" /></a>


aqui el codigo javascript(esta en un archivo externo):
scrollList=new Array();
function registraScroll(idAbajo, idArriba, div, velAbajo, velArriba)
{
if(scrollList[idAbajo]==null) scrollList[idAbajo]=new Array();
if(scrollList[idArriba]==null) scrollList[idArriba]=new Array();
scrollList[idAbajo].push(new Array(div, velAbajo));
scrollList[idArriba].push(new Array(div, velArriba));
}
window.onload=inicializar;

function getEl(elementId)
{
return document.getElementById(elementId);
}

function inicializar()
{
for(key in scrollList)
{
var elemento=getEl(key);
elemento.onmousedown=iniciaScroll;
elemento.onmouseup=detieneScroll;
}
}

function iniciaScroll()
{
scrollDivs=new Array();
velDivs=new Array();
for(key in scrollList[this.id])
{
scrollDivs.push(getEl(scrollList[this.id][key][0]));
velDivs.push(scrollList[this.id][key][1]);
}
identificador=setInterval('scrollNow()', 50);
}

function detieneScroll()
{
clearInterval(identificador);
}

function scrollNow()
{
for(key in scrollDivs)
{
var desplazamientoActual=scrollDivs[key].scrollTop;
var nuevoDesplazamiento=desplazamientoActual+velDivs[key];
scrollDivs[key].scrollTop=nuevoDesplazamiento;
}
}
//id's(imagen de bajar, imagen de subir, y id con la parrafada) y rapideza del scroll
registraScroll('down','up','biography',5,-5);
  #2 (permalink)  
Antiguo 31/01/2009, 19:16
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: ayuda onmouseup y onmousedown

creo que seguro es el setInterval, que como se solapen los eventos se extravia el indentificador y no se anula con el clearInterval porque ya ahora identifica a otro.

yo tengo el mismo problema con un script y estoy que no se como solucionarlo.

Puedes empezar por poner clearInterval por cada evento de esos botones y antes de aplicar un nuevo setInterval , e ir depurando.

Saludos.
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 17:38.