Panel animate
by dekkard
HTML
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<div class="container-fluid">
<div class="row">
<div class="col-xs-6">
<div class="panel" id="panel_1">Panel 1
<button> <i class="fa fa-expand"></i>
<i class="fa fa-compress"></i>
</button>
</div>
<div class="panel" id="panel_2">Panel 2
<button> <i class="fa fa-expand"></i>
<i class="fa fa-compress"></i>
</button>
</div>
</div>
<div class="col-xs-6">
<div class="panel" id="panel_3">Panel 3
<button> <i class="fa fa-expand"></i>
<i class="fa fa-compress"></i>
</button>
</div>
<div class="panel" id="panel_4">Panel 4
<button> <i class="fa fa-expand"></i>
<i class="fa fa-compress"></i>
</button>
</div>
<div class="panel" id="panel_5">Panel 5
<button> <i class="fa fa-expand"></i>
<i class="fa fa-compress"></i>
</button>
</div>
</div>
</div>
</div>
CSS
html, body {
background: #eee;
margin: 0;
padding: 0;
}
.container-fluid {
padding: 0;
margin: 15px;
}
.row div {
-webkit-transition: width 0.5s ease, margin 0.5s ease;
-moz-transition: width 0.5s ease, margin 0.5s ease;
-o-transition: width 0.5s ease, margin 0.5s ease;
transition: width 0.5s ease, margin 0.5s ease;
}
.panel {
background: #fff;
padding: 15px;
height: 200px;
border-radius: 0;
}
#panel_1 {
border-top: 3px solid red;
}
#panel_2 {
border-top: 3px solid orange;
}
#panel_3 {
border-top: 3px solid green;
}
#panel_4 {
border-top: 3px solid blue;
}
#panel_5 {
border-top: 3px solid purple;
}
button {
background: none;
border: 0;
float: right;
background: #eee;
padding: 5px;
}
.fa-compress {
display: none;
}
JavaScript
$('button').click(function () {
var $target = $(this).closest('.panel');
var targetIndex = $('.panel').index($target);
var singleHeight = $target.outerHeight(true);
var totalHeight = singleHeight * targetIndex;
$('.fa-compress').toggle();
$('.fa-expand').toggle();
$('.row > div').toggleClass('col-xs-6').toggleClass('col-xs-12');
$('html').animate({
scrollTop: totalHeight
}, 30);
});