Framework7 - Open & Close Panels From JS



Description

Panels can be opened and closed with JavaScript by using the related app methods as shown below −

  • myApp.openPanel(position) − It is used to open the panel which accepts the position of panel (left or right) as string.

  • myApp.closePanel() − It closes the currently opened panel. The example displays the left panel when you click Open Left Panel and to display the right panel, click Open Right Panel.

Example

The following example demonstrates the use of open and close panels in 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>Open and Close Panels</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>
      <div class = "panel-overlay"></div>
      
      <div class = "panel panel-left panel-reveal">
         <div class = "content-block">
            <p>Left Panel content</p>
            <p><a href = "#" class = "open-right-panel">Open Right Panel</a></p>
            <p><a href = "#" class = "panel-close">Close me</a></p>
         </div>
      </div>

      <div class = "panel panel-right panel-cover">
         <div class = "content-block">
            <p>Right Panel content</p>
            <p><a href = "#" class = "open-left-panel">Open Left Panel</a></p>
            <p><a href = "#" class = "panel-close">Close me</a></p>
         </div>
      </div>
         
      <div class = "views">
         <div class = "view view-main">
            <div class = "pages">
               <div data-page = "home" class = "page navbar-fixed">
                  
                  <div class = "navbar">
                     <div class = "navbar-inner">
                        <div class = "left"> </div>
                        <div class = "center">Open Panels with JavaScript</div>
                        <div class = "right"> </div>
                     </div>
                  </div>
                     
                  <div class = "page-content">
                     <div class = "content-block">
                        <p> <a href = "#" class = "open-left-panel">Open Left Panel</a></p>
                        <p> <a href = "#" class = "open-right-panel">Open Right Panel</a></p>
                     </div>
                  </div>
                     
               </div>
            </div>
         </div>
      </div>
         
      <script type = "text/javascript" 
         src = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/js/framework7.min.js"></script>
         
      <script>
         var myApp = new Framework7();

         var $$ = Dom7;

         $$('.open-left-panel').on('click', function (e) {
            // 'left' position to open Left panel
            myApp.openPanel('left');
         });

         $$('.open-right-panel').on('click', function (e) {
            // 'right' position to open Right panel
            myApp.openPanel('right');
         });

         $$('.panel-close').on('click', function (e) {
            myApp.closePanel();
         });

      </script>
   </body>

</html>

Output

Let us carry out the following steps to see how the above given code works −

  • Save the above given HTML code as sidepanels_open_close_js.html file in your server root folder.

  • Open this HTML file as http://localhost/sidepanels_open_close_js.html and the output is displayed as shown below.

  • This example displays the left panel when you click the Open Left Panel link and displays the right panel when you click the Open Right Panel link.

framework7_side_panels.htm
Advertisements