@@ -11,7 +11,7 @@ function css3TransitionHandler( name, reverse, $to, $from ) {
11
11
viewportClass = "ui-mobile-viewport-transitioning viewport-" + name ,
12
12
doneFunc = function ( ) {
13
13
14
- $to . add ( $from ) . removeClass ( "out in reverse " + name ) ;
14
+ $to . add ( $from ) . removeClass ( "out in reverse " + name ) ;
15
15
16
16
if ( $from && $from [ 0 ] !== $to [ 0 ] ) {
17
17
$from . removeClass ( $ . mobile . activePageClass ) ;
@@ -27,9 +27,32 @@ function css3TransitionHandler( name, reverse, $to, $from ) {
27
27
$to . parent ( ) . addClass ( viewportClass ) ;
28
28
29
29
if ( $from ) {
30
- $from . addClass ( name + " out" + reverseClass ) ;
30
+ if ( $from . jqmData ( 'role' ) === "dialog" ) {
31
+ // Transitioning away from a dialog.
32
+
33
+ $from . addClass ( "fade out" + reverseClass ) ;
34
+ $to . addClass ( $ . mobile . activePageClass + " fade out" + reverseClass ) ;
35
+ } else {
36
+ // Transitioning away from a normal page.
37
+ $from . addClass ( name + " out" + reverseClass ) ;
38
+ }
31
39
}
32
- $to . addClass ( $ . mobile . activePageClass + " " + name + " in" + reverseClass ) ;
40
+
41
+ if ( $to . jqmData ( 'role' ) === "dialog" ) {
42
+ // Transitioning to a dialog.
43
+
44
+ // Fade in the dialog overlay:
45
+ $to . addClass ( $ . mobile . activePageClass + " fade in" + reverseClass ) ;
46
+
47
+ // Apply the set transition to the dialog itself:
48
+ $ ( ":first" , $to ) . addClass ( name + " in" + reverseClass ) ;
49
+
50
+ } else if ( $from . jqmData ( 'role' ) !== 'dialog' ) {
51
+ // Transition has nothing to do with a dialog.
52
+ $to . addClass ( $ . mobile . activePageClass + " " + name + " in" + reverseClass ) ;
53
+ }
54
+
55
+
33
56
34
57
return deferred . promise ( ) ;
35
58
}
@@ -42,4 +65,4 @@ if ( $.mobile.defaultTransitionHandler === $.mobile.noneTransitionHandler ) {
42
65
$ . mobile . defaultTransitionHandler = css3TransitionHandler ;
43
66
}
44
67
45
- } ) ( jQuery , this ) ;
68
+ } ) ( jQuery , this ) ;
0 commit comments