Comunidad de diseño web y desarrollo en internet online

Mover barra de scroll de texto con RUEDA del ratón

Citar            
MensajeEscrito el 02 Feb 2006 10:43 am
Hola, hice un scroll de texto, ahora me piden que la barra del scroll se pueda subir y bajar con la RUEDA del ratón.
He estado mirando por ahí, y encontré este código que lo hace moverse arriba y abajo:


mouseListener = new Object();
mouseListener.onMouseWheel = function(delta) {
scrollbar._y+= delta;
}


Pero necesito que se limite su posición máxima por arriba y la mínima por abajo, con lo que he probado cosas como está:

mouseListener = new Object();
mouseListener.onMouseWheel = function(delta) {
if (scrollbar._y<15 or
scrollbar._y>235.8 ){
delta=0;
}else{
scrollbar._y -= delta;
}
}

Mouse.addListener(mouseListener);


Pero no funciona, a ver si alguien puede decirme cómo resolver la cosa.

P.D. no entiendo muy bien cuál es la función de "delta".

Por Rasangar

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Feb 2006 03:20 pm
Primero debes poner el punto de registro del scrollbar en (0;0) y luego este código:

Código :

var minScroll:Number = 0;
var maxScroll:Number = 150;
mouseListener = new Object();
mouseListener.onMouseWheel = function(delta) {
   if (scrollbar._y >= minScroll && (scrollbar._y+scrollbar._height) <= maxScroll){
      scrollbar._y += -delta;
   }
   scrollbar.onEnterFrame = function() {
      if (this._y < minScroll) this._y = minScroll;
      if (this._y+this._height > maxScroll) this._y = maxScroll-this._height;
   };
};
Mouse.addListener(mouseListener);


espero que te sirva, :wink:

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox
Citar            
MensajeEscrito el 06 Feb 2006 03:22 pm
Muchas gracias Altrix por tu respuesta. Al final tú código me ha servido, le he hecho un par de ajustes para adaptarlo a mis necesidades exactas, pero funciona.
Por ejemplo, en vez de delta a secas he puesto delta/10 y así a cada pequeña parte de giro de la rueda hacia arriba o hacia abajo, la barra avanza más poquito a poquito.

Lo único que veo raro es lo siguiente, a ver si consigo explicarlo:
Para hacer que la barra de scroll recorra toda la barra desde su posición más alta a la más baja, necesito -por poner una cifra de ejemplo- 10 toquecitos o pequeños giros de la rueda. Pero a cada toquecito, la barra recorre una distancia un poco mayor cada vez, y así, la segunda vez que recorro la barra de abajo a arriba, necesito 9, y a la siguiente 8... y así hasta que la distancia que se mueve la barrascroll con cada toquecito se hace demasiado grande y de un toque me recorre toda la distancia.
¿No sería posible que esto no se produjera y que esa distancia que recorre con cada toquecito quedara fija?

Supongo que tendrá que ver con la función de "delta", pero como sigo sin comprender muy bien cual es su sentido... sólo sé que hay que ponerlo.

Un saludo

Por Rasangar

11 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.