¿Javascript dice si el div de desplazamiento se "retiene" con el cursor?

Tengo un div de desplazamiento con desbordamiento: automático y quiero desplazarlo cambiando scrollTop, pero antes de cambiarlo quiero saber si el usuario está "sosteniendo" la barra de desplazamiento con el cursor, ¿cómo hago eso?

preguntado el 22 de mayo de 12 a las 17:05

Esto no tiene nada que ver con mi código. Todo lo que pido es un método para averiguar si la barra de desplazamiento está "retenida". -

Lo suficientemente interesante, traté de determinar qué eventos se activaron cuando un usuario hace clic en una barra de desplazamiento en un div hace un par de días. No obtuve absolutamente nada en Chrome v19. Ni un solo evento, por lo que parece ser una causa perdida a menos que esté interesado en implementar una barra de desplazamiento de JavaScript como jScrollPane (o algo similar) -

1 Respuestas

Puede vincular su div a un controlador de eventos y luego usar una variable global.

var IsPressingDiv = false;

$('#DivID').on({

    mousedown: function () { IsPressingDiv = true; },
    mouseup: function () { IsPressingDiv = false; }
});

De esa manera, podría probar para ver si el mouse está presionado sobre el div. No estoy seguro de que haya una manera de manejar el mouse hacia abajo en una barra de desplazamiento genérica, pero si necesitara vincular los eventos a la barra de desplazamiento, usaría una conexión de barra de desplazamiento jquery o crearía la mía.

contestado el 22 de mayo de 12 a las 20:05

Olvidaste las comillas alrededor de DivId :-) Por cierto, siempre es una mala idea usar variables globales. Siempre hay una mejor manera. Siempre. - florián margaine

@FlorianMargaine: corrigió la cotización. En cuanto a los globales, no SIEMPRE es una mala idea. Solo tenga cuidado con a) qué otro código se ejecutará en su página yb) elegir nombres que no entren en conflicto. La mejor opción, por supuesto, es poner un espacio de nombres en su código. - frenchie

La cuestión es que se evita fácilmente en tu ejemplo. Simplemente envuelva su código en una función anónima y listo. El único global aceptable es el espacio de nombres de lo contrario, de hecho :) - florián margaine

@FlorianMargaine: piense en esto: las variables globales son cierres en el alcance de nivel superior de la ventana. Además, parece que el OP aún no está en esa etapa. - frenchie

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.