Refresh Widget

This bootstrap snippet Refresh Widget was created to help web designers,
front-end developers and back-end developer save time. Use it in your project and build your app faster,
You can also download the HTML, CSS, and JS code
tags: Refresh,Widget

This is the HTML code for this bootstrap snippet

Copy, paste, change, customize and run the following HTML code to get a result like the one shown in the preview tab

<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css">
<div class="container bootstrap snippet">
    <!--refresh widget-->
        <div class="panel panel-info"> 
            <div class="panel-heading">
            <h1>
            <span class="glyphicon glyphicon-th"></span>
            <a class="refresh pull-right" href="#"><span class="fa fa-refresh"></span></a> <strong>Refresh Widget</strong>
             </h1>    
            </div>
          <div class="panel-body panel-refresh">
         	<div class="refresh-container"><i class="refresh-spinner fa fa-spinner fa-spin fa-5x"></i></div>
            <h4>Refresh Me: Please click on the refresh button </h4>
              <div class="jumbotron"> 
                This widget utilizes the simple <strong>$.refreshMe()</strong> plugin!
              </div>
              <div class="refresh-data"> 
              	This is the original data that will update upon refresh..
              </div>
          </div>
        </div>
    <!--refresh widget-->
</div>

This is the CSS code for this bootstrap snippet

Copy, paste, change, customize and run the following CSS code to get a result Like the one shown in the preview

.panel-refresh {
 height:250px;
 position:relative;
}
 
.refresh-container {
 position:absolute;
 top:0;
 right:0;
 background:rgba(200,200,200,0.25);
 width:100%;
 height:100%;
 display: none;
 text-align:center;
 z-index:4;
}
.refresh-spinner {
 padding: 30px;
 opacity: 0.8;
}
                                    

This is the JS code for this bootstrap snippet

Copy, paste, change, customize and run the following JS code to get a result Like the one shown in the preview

$.fn.refreshMe = function(opts){
    var $this = this,
        defaults = {
          ms:1500,
          started:function(){},
          completed:function(){}
        },
        settings = $.extend(defaults, opts);
  
	var panelToRefresh = $this.parents('.panel').find('.refresh-container');
  	var dataToRefresh = $this.parents('.panel').find('.refresh-data');
  	var ms = settings.ms;
  	var started = settings.started;		//function before timeout
	var completed = settings.completed;	//function after timeout
    
  	$this.click(function(){
      $this.addClass("fa-spin");
      panelToRefresh.show();
      started(dataToRefresh);
      setTimeout(function(){
          completed(dataToRefresh);
          panelToRefresh.fadeOut(800);
          $this.removeClass("fa-spin");
      },ms);
      return false;
    })
}

$(document).ready(function(){
      
  $('.refresh').refreshMe({
    started:function(ele){ele.html("Getting new data..")},
  	completed:function(ele){ele.html("This is the new data after refresh..")}
  });
}); 

Information about this bootstrap snippet

Creator: Dey Dey

Bootstrap version: 3.1.1

Created: May 21st 2014, 12:40

Views: 4.9K