2012-03-10 27 views
6

Quiero hacer la aplicación html5 a pantalla completa. Hice una página y la agregué como un ícono a mi iphone. Añadí metatags:Cómo deshabilitar el rebote en la aplicación para iphone de pantalla completa html5?

<meta name="apple-mobile-web-app-capable" content="yes"> 
<meta name="apple-mobile-web-app-status-bar-style" content="black"> 
<meta name="viewport" content="width=device-width, user-scalable=no" /> 

Lo que quería lograr es: barra de estado negro en la parte superior (esto no funciona y yo no sé por qué Todavía es barra de estado por defecto ... ideas de nadie.?) Y sin posibilidad para hacer zoom (como en la aplicación de Facebook) - esto funciona bien.

Ahora el problema: puedo desplazarme en mi iphone incluso si mi aplicación se ajusta a la pantalla. Rebota, pero no quiero este comportamiento. Me gustaría desactivar eso y habilitar el desplazamiento de un div (.ui-content) en particular. ¿Cómo puedo lograr eso?

EDITAR: barra de estado es negro ahora. Se modificó después de un tiempo. ¿La versión anterior estaba en caché en el iPhone o qué?

+0

http://www.hakoniemi.net/labs/scrollingOffset/nonbounce.html –

Respuesta

15

Esto evitará el desplazamiento en toda la página

document.ontouchmove = function(e) {e.preventDefault()}; 

En su caso, donde desea algunos divs para ser desplazable, y algunos no, usted debería ser capaz de capturar el evento antes de que llegue a la documento

scrollableDiv.ontouchmove = function(e) {e.stopPropagation()}; 
+1

¿Es esta solución de trabajo para usted? Esto de hecho detuvo el rebote cuando se ejecuta desde safari, cuando en la página web independiente (a través del enlace "agregar a la página de inicio") la página sigue rebotando ... – liorda

+1

Buen intento, funciona la mayor parte. Excepto cuando el elemento que tiene desplazamiento habilitado se desplaza hacia la parte superior o inferior. Entonces el efecto de rebote todavía se desencadena. – mrt

+0

Mientras esto funciona, me he encontrado con problemas donde parece que esto causa que las interacciones toque/clic como botones fallen a veces (presumiblemente, si hubo algún movimiento del contacto mientras se activaba el clic). Por ahora mi solución para eso es no invocar preventDefault si e.target es un botón, enlace o elemento de entrada. –

1

Si su uso de Córdoba 1.7+, abra el archivo Cordova.plist y establecer la clave para UIWebViewBounce NO

+0

Tenga cuidado cuando publique copiar y pegar respuestas repetidas o verbales a múltiples preguntas, estas tienden a ser señaladas como "basura" por la comunidad. Si está haciendo esto, generalmente significa que las preguntas son duplicadas, así que márquelas como tales en su lugar: http://stackoverflow.com/a/12394389/419 – Kev

+0

Ok, lo siento. –

0

Extendiendo el acercamiento de dmanxii esto es lo que estamos haciendo.

$("body").on("touchmove", function (event) { 
     if ($(event.target).is(".WhatEverClass") || $(event.target).parentsUntil().is(".ParentClass")) { 
      //console.log("NOT Disabled"); 
     } 
     else { 
      //console.log("Disabled"); 
      event.preventDefault(); 
     } 
    }); 
Cuestiones relacionadas