Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/01/2009, 05:17
dabit_1
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 8 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);