que tienen una aplicación basada en web que incluye un componente que el usuario puede desplazarse hacia arriba y hacia abajo con su dedo. Utilizo el método preventDefault del evento para evitar el comportamiento predeterminado donde el movimiento táctil desplaza toda la pantalla en dispositivos iOS.¿Cómo evito el comportamiento predeterminado del evento touchmove en iOS 5?
Desafortunadamente, esto no parece que trabajar más en IOS 5, que Acabo de actualizar a esta mañana. Tengo que suponer que esto se hace de forma diferente en iOS 5, pero aún no he podido encontrar un recurso que proporcione instrucciones.
Gracias!
Actualización n. ° 1: No he podido encontrar una respuesta a mi pregunta específica, pero pude ajustar un poco mi código para usar el estilo -webkit-overflow-scrolling (establecido en un valor de "táctil" ") e implemente la capacidad de desplazamiento inercial snazzy (donde el contenido se desplaza más rápido según la velocidad de deslizamiento y" rebote de banda elástica "si llega a los límites. Muy bien parecido ...
Actualización n. ° 2: Tengo otro problema extraño ahora. Por alguna extraña razón, el comportamiento de desplazamiento por desbordamiento se mezcla a veces por lo cual tienes que arrastrar el dedo hacia la izquierda y la derecha en el elemento que lo contiene para hacer que su contenido se mueva hacia arriba o hacia abajo. para descubrir por qué sucede esto, ¿alguien tiene alguna idea?
Tal vez podría hacer algo de lógica comprobar como 'if ($ (e.currentTarget) css ('desbordamiento') = 'scroll'!) e .preventDefault(); '. Desde document.ontouchmove se disparará después onTouchMove del elemento scollable, se puede hacer 'el.ontouchmove = function() {allowScroll = true}' 'y luego tienen document.ontouchmove' utilizar este valor para determinar la acción a continuación, establezca el valor de nuevo a falso –
@BrianNickel Gracias por la sugerencia. Este es un paso en la dirección correcta que le permitirá evitar el desplazamiento directo sobre una base de elemento por elemento (incluyendo el desplazamiento directamente en el cuerpo), pero si el usuario touchmoves un elemento desplazable que ya está en el borde de su desplazable rango, todavía terminará desplazándose por el cuerpo (mostrando la ropa interior gris debajo). ¿Quizás la única forma es interpretar la dirección de la sacudida y verificar si el elemento está en el borde de su rango desplazable? –
@RyanRapp Gracias por su respuesta.Tal vez no describí con suficiente claridad de qué comportamiento estoy hablando. Con iOS 4 usaría e.preventDefault() dentro de un elemento (digamos, un DIV) con el manejador de eventos touchmove de overflow, de manera que pudiera cambiar el contenido a través de un posicionamiento absoluto basado en el movimiento del dedo dentro del elemento. Ahora que e.preventDefault() bloquea esto cuando intento mover el dedo por toda la página, que no tiene suficiente contenido para desplazarse, no se desplaza tanto, sino que se mueve para que pueda ver la textura de fondo de Safari. – natlee75