2012-07-04 10 views
7

Estoy utilizando el método $.mobile.changePage(...) de jQueryMobile para cambiar a una página diferente dentro de mi proyecto.Definición de una transición de retorno entre cambios de página

$.mobile.changePage("#foo", { 
transition:"slide" 
}); 

Cuando corro ese método, la transición funciona perfectamente, pero cuando pulso el botón de retorno del navegador no veo ninguna transición inversa.

Jugué con algunos de los parámetros descritos en http://jquerymobile.com/test/docs/api/methods.html pero no tuve suerte.

La configuración especial reverse:true acaba de invertir la transición al avanzar a la página de destino, pero todavía no hay transición cuando presiono el botón Atrás.


Actualización: Parece como ver datos rel = "atrás" hace el truco de "enlaces" orginary definidos a través de la <a> -tag PERO lo que necesito es el equivalente JavaScript cuando se llama al $.mobile.changePage() función.

+0

¿Qué navegador usas para probar? –

+0

@John Safari (iPhone) – Timo

Respuesta

0

Encontrado ella.

Uno de nuestros desarrolladores ha desactivado todas las transiciones de devolución a nivel mundial, por lo que no es de extrañar que no haya funcionado.

Esto es lo que usó. Eliminar esa línea hizo el truco.

$.mobile.changePage.defaults.transition = "none"; 
2

Eche un vistazo a esta página, http://jsfiddle.net/nachiket/mDTK2/show/light/
Funciona bien conmigo.

Haga clic en (en la página 1) muestra la transición de izquierda a derecha, & El botón Atrás (en la página 2) muestra la transición de derecha a izquierda.

Fuente: http://jsfiddle.net/nachiket/mDTK2/
Si no funciona bien, entonces por favor comparta su navegación y otros detalles.
Si el ejemplo funciona bien, pero no su código, haga un jsfiddle resaltando su problema, para que pueda verificar y actualizar el código/respuesta.

+0

Sí, crear un proyecto jQM simple funciona bien. Parece que este comportamiento solo aparece en mi aplicación. Lamentablemente, el código fuente es confidencial. ¿Cuál sería una buena práctica para depurar esto? – Timo

+0

@valmar Debe habilitar la consola de depuración para Safari: http://osxdaily.com/2012/05/07/enable-safari-debug-console-ios/ –

2

Para los enlaces que desea tener la transición inversa en que puede utilizar data-direction="reverse" con data-rel="back"

Ejemplo:

<div data-role="page" > 
    <div data-role="header"><h3> Header </h3> </div> 
    <div data-role="content" >  
     <a href="#page2" data-role="button" data-transition="slide">Page 2</a> 
    </div> 
</div> 

<div data-role="page" id="page2"> 
    <div data-role="header"><h3> Header </h3> </div> 
    <div data-role="content" >  
     <a href="#" data-rel="back" data-role="button" data-direction="reverse" >Back</a> 
    </div> 
</div>​ 

jsFiddle:

Docs :

ACTUALIZACIÓN

Desde su comentario

"Yeah, but how do I do that with the JavaScript function $.mobile.changePage()?" 

Docs:

Cita:

Properties: 
    reverse (boolean, default: false) Decides what direction the transition will run when showing the page. 
+0

Sí, pero ¿cómo hago eso con la función de JavaScript ' $ .mobile.changePage() '? – Timo

+0

ver la actualización, por favor –

+0

No, eso está mal. Como ya dije en mi pregunta original, usar 'reverse = true' simplemente le indicará a jQM que use la transición hacia atrás cuando avance de una página a otra. No afectará la transición cuando regrese a una página anterior. – Timo

Cuestiones relacionadas