Objeto ScrollBar

Es exactamente lo que piensas y más. Es un widget que parece y funciona como un Scrollbar - pero realmente todo esta en una capa acomodada adentro de otra capa, la cual pueda ser arrastrada a donde sea. He hecho esto también como un scrollbar dimensional, si fijas las dimensiones de conforme que arrastras una capa acomodada (la cual me refiero con Caja "box" ) alrededor, dentro de los límites. Este widget es utilizado por el mismo como un genérico deslizador o tal vez como un widget zoom (te mostrare que es lo que tengo en la cabeza). El objeto Scroll2 utiliza dos formas del ScrollBar, una para la barra vertical, otra para la barra horizontal y los sincroniza con él ScrollWindow.

Constructor

ScrollBar(x,y,width,height,boxW,boxH)

El ancho y alto Refiere al ancho y el alto del widget entero (la capa de la parte de afuera), boxW y boxH son el ancho y la altura de la caja (la capa de adentro). Luego tienes que hacer la secuencia usual build-css-div-activate.

He también encontrado que este objeto funciona bien en Netscape si tienes el siguiente código de la función mouseMove() en particular:

if (is.ns && e.target!=document) routeEvent(e)

La función routeEvent() Pasará los eventos hacia abajo en la jerarquía que tiene Netscape. Por alguna razón el efecto que tiene esto es cuando comienzas a arrastrar la capa, este continuará a recibir coordinadores no importa que el ratón salga de los límites de la capa - el código mouseMove en el ScrollBar toma el control y no lo deja ir hasta que el ratón se ha dejado ir. Esta es una buena característica actualmente - hace que el scrollbar funcione de la forma que desearías. Recomiendo de poner el llamado al routeEvent() en cada una de las funciones del ratón :

function mouseDown(e) {
	if (is.ns && e.target!=document) routeEvent(e)
	
	// other mouseDown code
	return true
}
function mouseMove(e) {
	if (is.ns && e.target!=document) routeEvent(e)

	// other mouseMove code
	return true
}
function mouseUp(e) {
	if (is.ns && e.target!=document) routeEvent(e)

	// other mouseUp code
	return true
}

Ejemplo: scrollbar-simple.html [fuente] - una ejemplo simple de ScrollBar.

Con fijar al ancho del ScrollBar a lo mismo que la caja tendrás el scrollbar vertical, y lo mismo con la altura.

Ejemplo: scrollbar-vh.html [fuente] - muestra scrollbars verticales y horizontal

Fijando Imagenes

El ScrollBar te permite definir tus propias imagenes que desees utilizar:

mybar.setImages(bg,box,shade,dir)

setImages() debe de ser llamado antes de build()

Ejemplo: scrollbar-images.html [fuente] - fijando imagenes

Propiedades, Métodos, y Sumario DynLayers

Nombre de la PropiedadDescripcion
nameguarda el nombre utilizado por todas la capas
wel ancho del scrollbar
hel alto del scrollbar
bgColorel color del fondo de la barra, default es nulo (transparente)
boxColorel color del fondo de la caja, default es nulo (transparente)
incel aumento en pixeles cuando haces click en alguna parte de la barra y la caja se desliza ligeramente a ese punto
speedla ligereza (en ms) para el de arriba
boxvisla visibilidad incial para la capa de la caja ('hidden','visible','inherit')
dragActivedevuelve a verdadero si la caja esta actualemente siendo arrastrada

Nombre del MétododoDescripción
build()agrupa todas las propiedades css y div para crear las capas necesitadas
activate()asigna todas las DynLayers y recoge la información importante para permitir que el objeto funcione
getXfactor()Devuelve el valor entre 0 y 1 ajustando con x-posición del contenido. 0 significa que esta a los límites de la izquierda, 1 significa que esta en los límites de la derecha.
getYfactor()Devuelve el valor entre 0 y 1 ajustando con y-posición del contenido. 0 significa que esta a los límites de la arriba, 1 significa que esta en los límites de la abajo.

Nombre del DynLayerDescripción
lyrla capa mas alta del ScrollWindow
boxlyrla capa para la caja
lyrcuna capa que actualmente pasa por encima del entero scrollbar, una capa cubierta 'cover' layer como yo le llamo. Esta es una capa la cual recoge y controla todos los eventos del ratón, y te previene de hacer clic en las imágenes que componen en el scrollBar

El Evento onScroll

El evento Scroll es llamado cada vez que la caja es arrastrada alrededor, o cuando haces clic en la barra y la caja se desliza ligeramente a ese punto. Puedes asignar el controlador al evento onScroll y utilizar este para hacer "cosas" cuando la caja se esta scrolling.

mybar.onScroll = MyBarHandler

function MyBarHandler() {
	status = this.getXfactor()+' '+this.getYfactor()
}

Ejemplo: scrollbar-methods.html [fuente] - muestra de como utilizar los métodos

La demostración Zoom

Es una demostración bastante buena la cual imita el control común de aplicaciones gráficas donde se muestra una imagen pequeña como una uña Y te permite hacer scroll a una versión más grande de la imagen.

Ejemplo: scrollbar-zoom.html [fuente]

Fuente de Código

scrollbar.js

Casa Proxima Lección: Objeto Scroll2
copyright 1998 Dan Steinman