|
412 | 412 | var active = $.mobile.urlHistory.getActive();
|
413 | 413 |
|
414 | 414 | if( active ){
|
415 |
| - var lastScroll = $( window ).scrollTop(); |
416 |
| - |
| 415 | + var lastScroll = $.support.touchOverflow ? $( ".ui-page-active" ).scrollTop() : $( window ).scrollTop(); |
| 416 | + |
417 | 417 | // Set active page's lastScroll prop.
|
418 | 418 | // If the Y location we're scrolling to is less than minScrollBack, let it go.
|
419 | 419 | active.lastScroll = lastScroll < $.mobile.minScrollBack ? $.mobile.defaultHomeScroll : lastScroll;
|
|
434 | 434 | toScroll = active.lastScroll || $.mobile.defaultHomeScroll,
|
435 | 435 | screenHeight = getScreenHeight();
|
436 | 436 |
|
437 |
| - // Scroll to top |
| 437 | + // Scroll to top, hide addr bar |
438 | 438 | window.scrollTo( 0, $.mobile.defaultHomeScroll );
|
439 | 439 |
|
440 | 440 | if( fromPage ) {
|
441 | 441 | //trigger before show/hide events
|
442 | 442 | fromPage.data( "page" )._trigger( "beforehide", null, { nextPage: toPage } );
|
443 | 443 | }
|
444 |
| - toPage |
445 |
| - .height( screenHeight + toScroll ) |
446 |
| - .data( "page" )._trigger( "beforeshow", null, { prevPage: fromPage || $( "" ) } ); |
| 444 | + |
| 445 | + if( !$.support.touchOverflow ){ |
| 446 | + toPage.height( screenHeight + toScroll ); |
| 447 | + } |
| 448 | + |
| 449 | + toPage.data( "page" )._trigger( "beforeshow", null, { prevPage: fromPage || $( "" ) } ); |
447 | 450 |
|
448 | 451 | //clear page loader
|
449 | 452 | $.mobile.hidePageLoadingMsg();
|
| 453 | + |
| 454 | + if( $.support.touchOverflow && toScroll ){ |
| 455 | + toPage.addClass( "ui-mobile-pre-transition" ); |
| 456 | + // Send focus to page as it is now display: block |
| 457 | + reFocus( toPage ); |
| 458 | + |
| 459 | + //set page's scrollTop to remembered distance |
| 460 | + toPage.scrollTop( toScroll ); |
| 461 | + } |
450 | 462 |
|
451 | 463 | //find the transition handler for the specified transition. If there
|
452 | 464 | //isn't one in our transitionHandlers dictionary, use the default one.
|
|
455 | 467 | promise = th( transition, reverse, toPage, fromPage );
|
456 | 468 |
|
457 | 469 | promise.done(function() {
|
458 |
| - //reset toPage height bac |
459 |
| - toPage.height( "" ); |
460 |
| - |
461 |
| - // Send focus to the newly shown page |
462 |
| - reFocus( toPage ); |
| 470 | + //reset toPage height back |
| 471 | + if( !$.support.touchOverflow ){ |
| 472 | + toPage.height( "" ); |
| 473 | + // Send focus to the newly shown page |
| 474 | + reFocus( toPage ); |
| 475 | + } |
463 | 476 |
|
464 | 477 | // Jump to top or prev scroll, sometimes on iOS the page has not rendered yet.
|
465 |
| - $.mobile.silentScroll( toScroll ); |
| 478 | + if( !$.support.touchOverflow ){ |
| 479 | + $.mobile.silentScroll( toScroll ); |
| 480 | + } |
466 | 481 |
|
467 | 482 | //trigger show/hide events
|
468 | 483 | if( fromPage ) {
|
469 |
| - fromPage.height("").data( "page" )._trigger( "hide", null, { nextPage: toPage } ); |
| 484 | + if( !$.support.touchOverflow ){ |
| 485 | + fromPage.height( "" ); |
| 486 | + } |
| 487 | + |
| 488 | + fromPage.data( "page" )._trigger( "hide", null, { nextPage: toPage } ); |
470 | 489 | }
|
471 | 490 |
|
472 | 491 | //trigger pageshow, define prevPage as either fromPage or empty jQuery obj
|
|
0 commit comments