Intento hacer un script de evento mousewheel, pero obtengo algunos problemas ya que estoy usando un Apple Magic Mouse y su función de continuar con el desplazamiento .Cómo comprobar cada nuevo desplazamiento y evitar el problema de los ratones de Apple (efecto de desplazamiento múltiple)
Quiero hacer esto http://jsfiddle.net/Sg8JQ/ (de jQuery Tools Scrollable with Mousewheel - scroll ONE position and stop, utilizando http://brandonaaron.net/code/mousewheel/demos), pero quiero una breve animación (como 250 ms) cuando se desplaza a las cajas, y la capacidad de Pasar por varios cuadros al desplazarse varias veces durante una animación. (Si me desplazo, la animación comienza a desplazarse al segundo cuadro, pero si me desplazo nuevamente, quiero ir al tercero, y si me desplazo dos veces, al cuarto, etc.)
Pensé por primera vez stopPropagation
/preventDefault
/return false;
podría "detener" la velocidad de la rueda del mouse (y la var delta) - para que pueda contar el número de nuevos eventos de desplazamiento (tal vez con un temporizador) -, pero ninguno de ellos lo hace.
Ideas?
EDITAR: Si intenta desplazarse en Google Calendarios con estos mouses, se cambian varios calendarios, no solo uno. Parece que no pueden arreglar eso tampoco.
EDIT 2: Pensé en desenganchar la rueda del mouse y volver a unirla después de que pudiera detener el oyente de la rueda del mouse (y no escuchar el final de la inercia). No lo hizo.
Datos 3: trató de trabajar con fechas (gracias a this post), no es óptimo, pero mejor que nada http://jsfiddle.net/eZ6KE/
Esto no será un problema solo en Magic Mice, pero todos los sistemas con desplazamiento de inercia (es decir, todas las Mac recientes, muchas PC más nuevas), su sugerencia de contar eventos de desplazamiento suena sensata y es posible que deba implementarla usted mismo. –
Sí, tienes razón, es un problema de inercia (y estoy experimentando esto con mi Magic Mouse). Si contar eventos de desplazamiento suena como una buena solución, no tengo idea de cómo realizar esto. Intenté comprobar: en cada evento de desplazamiento (llamado cada vez durante la inercia) si el delta anterior era> o <, pero la curva no es lineal, es elástico en mi prueba. Algunas ideas ? (¡Gracias de todos modos!) – Joan
Posible solución: https://github.com/brandonaaron/jquery-mousewheel/issues/36 (aún no probado). – Joan