Framework7 Progress Bar

progress bar

In Framework7, the progress bar is used to show the loading of assets or the progress of a task to the users.

The “progressbar” class is used to specify the progress bar. “progressbar-infinite” class is used when you want to specify that user does not know how long the loading process will be there for the request.

Progressbar JavaScript API

The progressbar is used with JavaScript API to specify show, hide and progress properties by using the following methods:

myApp.setProgressbar (container , progress, speed):

It is used to set the progress bar for the progress of a task.

Parameter Explanation:

container: It is a string or HTML element that defines the container of progress bar element.

progress: It represents in integer format and defines the progress of a task.

speed: It represents in integer format and specifies the duration of the progress of a task.

myApp.hideProgressbar (contain er):

It is used to hide the progress bars.

Parameter Explanation:

container: It is a string or HTML element that defines the container of progress bar element.

myApp.showProgressbar (contai ner, progress, color):

It is used to display the progress bars.

Parameter Explanation:

container: It is a string or HTML element that defines the container of progress bars element.

progress: It represents in integer format and defines the progress of a task.

speed: It represents in integer format and specifies the duration of the progress of a task.

Example

Let’s take an example to display an animated determinate and indeterminate progress bars to indicate activity 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>Progress 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" />  
      <link rel = "stylesheet"   
         href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.material.min.css" />  
      <link rel = "stylesheet"   
         href = "https://cdnjs.cloudflare.com/ajax/libs/framework7/1.4.2/css/framework7.material.colors.min.css" />  
   </head>  
  
   <body>  
      <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 = "center">Progress Bar</div>  
                     </div>  
                  </div>  
                    
                  <div class = "page-content">  
                     <div class = "content-block-title">Determinate Progress Bar</div>  
                     <div class = "content-block">  
                        <div class = "content-block-inner">  
                           <p>Inline determinate progress bar:</p>  
                             
                           <div class = "progressbar-inline">  
                              <p><span data-progress = "10" class = "progressbar"></span></p>  
                                
                              <p class = "buttons-row">  
                                 <a href = "#" data-progress = "25" class = "button button-raised">25%</a>  
                                 <a href = "#" data-progress = "50" class = "button button-raised">50%</a>  
                                 <a href = "#" data-progress = "75" class = "button button-raised">75%</a>  
                                 <a href = "#" data-progress = "100" class = "button button-raised">100%</a>  
                              </p>  
                           </div>                            
                           <p>Loads and hides the determinate progress bar:</p>  
                           <div class = "progressbar-load-hide">  
                              <p><a href = "#" class = "button button-raised">Start Loading</a></p>  
                           </div>                            
                           <p>Displays the determinate progress bar on top:</p>  
                           <p class = "progressbar-overlay"><a href = "#"   
                           class = "button button-raised">Start Loading</a></p>  
                        </div>  
                     </div>                      
                     <div class = "content-block-title">Infinite Progress Bar</div>  
                     <div class = "content-block">  
                        <div class = "content-block-inner">  
                           <p>Inline infinite progress bar:</p>                          
                           <p><span class = "progressbar-infinite"></span></p>                            
                           <p>Displays the infinite progress bar in multiple colors:</p>                            
                           <p><span class = "progressbar-infinite color-multi"></span></p>                            
                           <p>Displays the infinite progress bar on top:</p>  
                           <p class = "progressbar-infinite-overlay"><a href = "#"   
                             
                           <p>Displays the infinite progress bar in multiple colors on top:</p>  
                             
                           <p class = "progressbar-infinite-multi-overlay"><a href = "#"   
                           class = "button button-raised">Start Loading</a></p>  
                        </div>  
                     </div>                      
                     <div class = "content-block-title">Different types of colored progress bars:</div>  
                     <div class = "list-block">  
                        <ul>  
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "5" class = "progressbar color-red"></div>  
                              </div>  
                           </li>                             
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "10" class = "progressbar color-pink"></div>  
                              </div>  
                           </li>                            
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "20" class = "progressbar color-deeppurple"></div>  
                              </div>  
                           </li>                            
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "30" class = "progressbar color-blue"></div>  
                              </div>  
                           </li>                             
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "40" class = "progressbar color-cyan"></div>  
                              </div>  
                           </li>                            
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "50" class = "progressbar color-green"></div>  
                              </div>  
                           </li>                           
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "60" class = "progressbar color-lime"></div>  
                              </div>  
                           </li>  
                             
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "70" class = "progressbar color-amber"></div>  
                              </div>  
                           </li>                            
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "80" class = "progressbar color-deeporange"></div>  
                              </div>  
                           </li>  
                             
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "90" class = "progressbar color-gray"></div>  
                              </div>  
                           </li>  
                             
                           <li class = "item-content">  
                              <div class = "item-inner">  
                                 <div data-progress = "100" class = "progressbar color-black"></div>  
                              </div>  
                           </li>  
                        </ul>  
                     </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({  
            material: true  
         });           
         var $$ = Dom7;  
         $$('.progressbar-inline .button').on('click', function () {  
            var progress = $$(this).attr('data-progress');  
            var progressbar = $$('.progressbar-inline .progressbar');  
            myApp.setProgressbar(progressbar, progress);  
         });           
         $$('.progressbar-load-hide .button').on('click', function () {  
            var container = $$('.progressbar-load-hide p:first-child');              
            //it doesn't load if another progresbar is loading  
            if (container.children('.progressbar').length) return;  
            myApp.showProgressbar(container, 0);  
            var progress = 0;  
            function simulateLoading() {  
               setTimeout(function () {  
                  var progressprogressBefore = progress;  
                  progress += Math.random() * 20;  
                  myApp.setProgressbar(container, progress);  
                  if (progressBefore < 100) {  
                     simulateLoading();  
                  }  
                  else myApp.hideProgressbar(container);  
               }, Math.random() * 200 + 200);  
            }  
            simulateLoading();  
         });           
         $$('.progressbar-overlay .button').on('click', function () {  
            var container = $$('body');  
            if (container.children('.progressbar, .progressbar-infinite').length) return;  
            myApp.showProgressbar(container, 0, 'orange');  
            var progress = 0;            
            function simulateLoading() {  
               setTimeout(function () {  
                  var progressprogressBefore = progress;  
                  progress += Math.random() * 20;  
                  myApp.setProgressbar(container, progress);  
                  if (progressBefore < 100) {  
                     simulateLoading();  
                  }  
                  //hides the progressbar  
                  else myApp.hideProgressbar(container);  
               }, Math.random() * 200 + 200);  
            }  
            simulateLoading();  
         });           
         $$('.progressbar-infinite-overlay .button').on('click', function () {  
            var container = $$('body');  
            if (container.children('.progressbar, .progressbar-infinite').length) return;  
            myApp.showProgressbar(container, 'yellow');  
            setTimeout(function () {  
               myApp.hideProgressbar();  
            }, 3000);  
         });           
         $$('.progressbar-infinite-multi-overlay .button').on('click', function () {  
            var container = $$('body');  
            if (container.children('.progressbar, .progressbar-infinite').length) return;  
               myApp.showProgressbar(container, 'multi');  
               setTimeout(function () {  
               myApp.hideProgressbar();  
            }, 3000);  
         });  
      </script>  
   </body>  
</html>  

Next Topic:-Click Here

Leave a Reply