|
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