jQuery Mobile - Eventos de transição de página

Descrição

Dispara quando fazemos a transição de uma página para outra usando os seguintes tipos de eventos -

  • O evento pagebeforeshow é disparado ao disparar em "toPage" antes do início da animação de transição.

  • O evento pageshow é disparado ao disparar em "toPage" após a ocorrência da animação de transição.

  • O evento pagebeforehide é disparado ao disparar em "fromPage" antes do início da animação de transição.

  • O evento pagehide é disparado ao disparar em "fromPage" após a ocorrência da animação de transição.

Exemplo

O exemplo a seguir descreve o uso de eventos de transição de página no jQuery Mobile Framework.

<!DOCTYPE html>
   <head>
      <title>Page Transition Events</title>
      <meta name = "viewport" content = "width = device-width, initial-scale = 1">
      <link rel = "stylesheet" href = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
      <script src = "https://code.jquery.com/jquery-1.11.3.min.js"></script>
      <script src = "https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
      <script>
         $(document).on("pagebeforeshow","#page2",function() {
            alert("The pagebeforeshow event has been fired and second page is yet to be shown.");
         });
         
         $(document).on("pageshow","#page2",function() {
            alert("The pageshow event has been fired and second page is displaying now.");
         });
         
         $(document).on("pagebeforehide","#page2",function() {
            alert("The pagebeforehide event has been fired and second page is going to be hide now.");
         });
         
         $(document).on("pagehide","#page2",function() {
            alert("The pagehide event has been fired and second page is hidden now.");
         });
      </script>
   </head>
   
   <body>
      <div data-role = "page" id = "page1">
         <div data-role = "header">
            <h2>Header</h2>
         </div>

         <div data-role = "main" class = "ui-content">
            <p>This is first page</p>
            <a href = "#page2">Page Two</a>
         </div>

         <div data-role = "footer">
            <h2>Footer</h2>
         </div>
      </div>

      <div data-role = "page" id = "page2">
         <div data-role = "header">
            <h2>Header</h2>
         </div>

         <div data-role = "main" class = "ui-content">
            <p>This is second page</p>
            <a href = "#page1">Page One</a>
         </div>

         <div data-role = "footer">
            <h2>Footer</h2>
         </div>
      
      </div>
   </body>
</html>

Resultado

Vamos realizar as seguintes etapas para ver como o código acima funciona -

  • Salve o código html acima como jqm_page_transition_event.html arquivo na pasta raiz do servidor.

  • Abra este arquivo HTML como http: //localhost/jqm_page_transition_events.html e a seguinte saída será exibida.