Framework7 - Cambiar vistas desde la barra de pestañas

Descripción

Se puede usar una sola pestaña para cambiar entre vistas con su propia navegación y diseño.

Ejemplo

El siguiente ejemplo demuestra el uso de cambiar de vista desde la barra de pestañas en Framework7:

<!DOCTYPE html>
<html>

   <head>
      <meta name = "viewport" content = "width = device-width, initial-scale = 1, 
         maximum-scale = 1, minimum-scale = 1, user-scalable = no, minimal-ui" />
      <meta name = "apple-mobile-web-app-capable" content = "yes" />
      <meta name = "apple-mobile-web-app-status-bar-style" content = "black" />
      <title>Switch views from Tab bar </title>
      <link rel = "stylesheet" 
         href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.min.css" />
      <link rel = "stylesheet" 
         href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.ios.colors.min.css" />
   </head>

   <body>
       <style>
         i.demo-icon-1 {
            width:30px;
            height:30px;
            backgroundimage:url("data:image/svg+xml;charset=utf-8,
               <svg xmlns = 'http://www.w3.org/2000/svg' viewBox = '0 0 30 30' fill = '%23929292'>
                  <g><circle cx = '15.2' cy = '8.8' r = '1.5'/>
                     <polygon points = '16.7,12.3 16.7,11.7 16.7,11.3 13.7,11.3 13.7,
                        12.3 14.7,12.3 14.7,20.3 13.7,20.3 13.7,21.3 17.7,21.3 17.7,20.3 16.7,20.3'/>
                     <path d = 'M15.2,2.3C8.3,2.3,2.7,7.9,2.7,14.8s5.6,12.5,12.5,12.5c6.9,0,12.5-5.6,
                        12.512.5S22.1,2.3,15.2,2.3z M15.2,26.3 c-6.3,0-11.5-5.2-11.511.5S8.8,3.3,15.2,3.3s11.5,
                        5.2,11.5,11.5S21.5,26.3,15.2,26.3z'/>
                  </g>
               </svg>"
            );
         }
         
         . active i.demo-icon-1 {
            background-image:url("data:image/svg+xml;charset = utf8,
               <svg xmlns = 'http://www.w3.org/2000/svg' x = '0px' y = '0px' viewBox = '0 0 30 30' fill = '%23007aff'>
                  <path d = 'M15,2.6C8.1,2.6,2.5,8.2,2.5,15.1C2.5,22,8.1,27.6,15,27.6S27.5,22,27.5,
                     15.1C2 7.5,8.2,21.9,2.6,15,2.6z M15,7.6 c0.8,0,1.5,0.7,1.5,1.5c0,0.8-0.7,1.5-1.5,1.5c0.8,
                     0-1.5-0.7-1.5-1.5C13.5,8.3,14.2,7.6,15,7.6z M17.5,21.6h-4v-1h1v-8h-1v1h3V12 v0.6v8h1V21.6z'/>
               </svg>"
            );
         }
         
         i.demo-icon2 {
            width:25px;
            height:30px;
            background-image:url("data:image/svg+xml;charset = utf8,
               <svg xmlns = 'http://www.w3.org/2000/svg' x = '0px' y = '0px' viewBox = '0 0 25 17' fill = '%23929292'>
                  <path d = 'M19.5,0h-14L0,6v11h25V6L19.5,0z M5.9,1h13.2l4.5,5H16c0,1.9-1.6,3.4-3.5,3.4C10.6,
                     9.4,9,7.9,9,6H1.4L5.9,1z M24,16H1V7h7.1 c0.5,1.9,2.3,3.4,4.4,3.4s3.9-1.5,4.43.4H24V16z'/>
               </svg>"
            );
         }
         
         .active i.demo-icon-2 {
            backgroundimage:url("data:image/svg+xml;charset = utf-8,
               <svg xmlns = 'http://www.w3.org/2000/svg' x = '0px' y = '0px' viewBox = '0 0 25 17' fill = '%23007aff'>
                  <path d = 'M19.5,0h-14L0,6v11h25V6L19.5,0z M5.9,1h13.2l4.5,5H16c0,1.9-1.6,3.43.5,3.4C10.6,
                     9.4,9,7.9,9,6H1.3L5.9,1z'/>
               </svg>"
            );
         }
         
         i.demo-icon3 {
            width:30px;
            height:30px;
            background-image:url("data:image/svg+xml;charset = utf8,
               <svg xmlns = 'http://www.w3.org/2000/svg' x = '0px' y = '0px' viewBox = '0 0 30 19' fill = '%23929292'>
                  <path d = 'M16.8,1c3.7,0,6.8,3,6.8,6.8l0,0.1c0,0,0,0.1,0,0.1l0,1l1,0C27,9,29,11,29,13.5 c0,
                     2.5-2,4.5-4.5,4.5H6c-2.8,0-5-2.2-5-5 c0-2.1,1.4-4,3.4-4.7L5,8.1l0.10.6C5.3,6,6.5,5,8,5c0.4,0,
                     0.9,0.1,1.3,0.3l0.9,0.5l0.40.9C11.8,2.5,14.2,1,16.8,1 M16.8,0 c-3.1,0-5.7,1.87,4.4C9.2,4.2,8.6,
                     4,8,4C6,4,4.4,5.4,4.1,7.3C1.7,8.1,0,10.4,0,13c0,3.3,2.7,6,6,6 h18.5v0c3,0,
                     5.5-2.5,5.5-5.5 c0-3-2.5-5.5-5.5-5.5c0-0.1,0-0.2,00.2C24.5,3.5,21.1,0,16.8,0L16.8,0z'/>
               </svg>"
            );
         }
         
         .active i.demo-icon3 {
            background-image:url("data:image/svg+xml;charset = utf-8,
               <svg xmlns = 'http://www.w3.org/2000/svg' x = '0px' y = '0px' viewBox = '0 0 30 19' fill = '%23007aff'>
                  <path d = 'M24.5,8c0-0.1,0-0.2,0-0.2C24.5,3.5,21,0,16.8,0c3.1,0-5.7,1.8-7,4.4C9.2,4.2,8.6,4,8,4C6,4,4.4,
                     5.4,4,7.3 C1.7,8.1,0,10.4,0,13c0,3.3,2.7,6,6,6h18.5v0c3,0,5.5-2.5,5.55.5C30,10.5,27.5,8,24.5,8z'/>
               </svg>"
            );
         }
      </style>
      
      <div class = "views tabs toolbar-fixed">
         <div id = "tab1" class = "view tab active">
            <div class = "navbar">
               <div class = "navbar-inner">
                  <div class = "center">View 1</div>
               </div>
            </div>
            
            <div class = "pages navbar-fixed">
               <div data-page = "home-1" class = "page">
                  <div class = "page-content">
                     <div class = "content-block">
                        <p>This is view 1</p>
                     </div>
                  </div>
               </div>
            </div>
         </div>
         
         <div id = "tab2" class = "view tab">
            <div class = "navbar">
               <div class = "navbar-inner">
                  <div class = "center">View 2</div>
               </div>
            </div>
            
            <div class = "pages navbar-fixed">
               <div data-page = "home-2" class = "page">
                  <div class = "page-content">
                     <div class = "content-block">
                        <p>This is view 2</p>
                     </div>
                  </div>
               </div>
            </div>
         </div>
         
         <div id = "tab3" class = "view tab">
            <div class = "navbar">
               <div class = "navbar-inner">
                  <div class = "center">View 3</div>
               </div>
            </div>
            
            <div class = "pages navbar-fixed">
               <div data-page = "home-3" class = "page">
                  <div class = "page-content">
                     <div class = "content-block">
                        <p>This is view 3</p>
                     </div>
                  </div>
               </div>
            </div>
         </div>
         
         <div class = "toolbar tabbar">
            <div class = "toolbar-inner">
               <a href = "#tab1" class = "tab-link active"> <i class = "icon demo-icon-1"></i></a>
               <a href = "#tab2" class = "tab-link"><i class = "icon demo-icon-2"></i></a>
               <a href = "#tab3" class = "tab-link"><i class = "icon demo-icon-3"></i></a>
            </div>
         </div>
      </div>
      
      <script type = "text/javascript" 
         src = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script>
      <script>
         // here initialize the app
         var myApp = new Framework7();

         // If your using custom DOM library, then save it to $$ variable
         var $$ = Dom7;

         // Add the view
         var mainView = myApp.addView('.view-main', {
            // enable the dynamic navbar for this view:
            dynamicNavbar: true
         });
      </script>
   </body>

</html>

Salida

Realicemos los siguientes pasos para ver cómo funciona el código dado anteriormente:

  • Guarde el código HTML proporcionado anteriormente como switch_views_from_tab_bar.html archivo en la carpeta raíz de su servidor.

  • Abra este archivo HTML como http: //localhost/switch_views_from_tab_bar.html y la salida se muestra como se muestra a continuación.

  • El ejemplo proporciona una sola pestaña que se puede usar para cambiar entre vistas con su propia navegación y diseño.