gridster demo
prototype for Heavy Meta layout manager using gridster.js
by B L Praveen
HTML
<script src="https://raw.github.com/ducksboard/gridster.js/master/dist/jquery.gridster.js"></script>
<script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css">
<div class="gridster">
<ul id="reszable">
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1"><div class="handle">1</div></li>
<li data-row="2" data-col="1" data-sizex="1" data-sizey="1"><div class="handle">2</div></li>
<li data-row="3" data-col="1" data-sizex="1" data-sizey="1"><div class="handle">3</div></li>
<li data-row="1" data-col="2" data-sizex="2" data-sizey="1"><div class="handle">4</div><br>I can't select this text!</li>
<li data-row="2" data-col="2" data-sizex="2" data-sizey="2"><div class="handle">5</div> <input></li>
<li data-row="1" data-col="4" data-sizex="1" data-sizey="1"><div class="handle">6</div></li>
<li data-row="2" data-col="4" data-sizex="2" data-sizey="1"><div class="handle">7</div><br><a href="http://www.google.com">links work</a></li>
<li data-row="3" data-col="4" data-sizex="1" data-sizey="1"><div class="handle">8</div></li>
<li data-row="1" data-col="5" data-sizex="1" data-sizey="1"><div class="handle">9</div></li>
<li data-row="3" data-col="5" data-sizex="1" data-sizey="1"><div class="handle">10</div></li>
<li data-row="1" data-col="6" data-sizex="1" data-sizey="1"><div class="handle">11</div></li>
<li data-row="2" data-col="6" data-sizex="1" data-sizey="2"><div class="handle">12</div></li>
</ul>
</div>
CSS
input {
width: 100px;
}
.handle {
border-bottom: 1px solid black;
background-color: yellow
}
.gridster {
position:relative;
background-color: gray;
}
li {
background-color: white;
width: 150px;
height: 300px;
border: solid 2px black;
}
.gridster > * {
margin: 0 auto;
-webkit-transition: height .4s;
-moz-transition: height .4s;
-o-transition: height .4s;
-ms-transition: height .4s;
transition: height .4s;
}
.gridster .gs_w{
z-index: 2;
position: absolute;
}
.ready .gs_w:not(.preview-holder) {
-webkit-transition: opacity .3s, left .3s, top .3s;
-moz-transition: opacity .3s, left .3s, top .3s;
-o-transition: opacity .3s, left .3s, top .3s;
transition: opacity .3s, left .3s, top .3s;
}
.ready .gs_w:not(.preview-holder) {
-webkit-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
-moz-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
-o-transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
transition: opacity .3s, left .3s, top .3s, width .3s, height .3s;
}
.gridster .preview-holder {
z-index: 1;
position: absolute;
background-color: #fff;
border-color: #fff;
opacity: 0.3;
}
.gridster .player-revert {
z-index: 10!important;
-webkit-transition: left .3s, top .3s!important;
-moz-transition: left .3s, top .3s!important;
-o-transition: left .3s, top .3s!important;
transition: left .3s, top .3s!important;
}
.gridster .dragging {
z-index: 10!important;
-webkit-transition: all 0s !important;
-moz-transition: all 0s !important;
-o-transition: all 0s !important;
transition: all 0s !important;
}
/* Uncomment this if you set helper : "clone" in draggable options */
/*.gridster .player {
opacity:0;
}*/
JavaScript
$(function(){ //DOM Ready
$(".gridster ul").gridster({
widget_margins: [5, 5],
widget_base_dimensions: [100, 100],
draggable: {
handle: '.handle'
}
});
var gridster = $(".gridster ul").gridster().data('gridster');
/*
gridster.disable( );
$("li").resizable({
grid: 50,
handles:"all",
minHeight:50,
minWidth:50,
// Xhelper: "outline", Xanimate:true
stop: function(event,ui) {
gridster.enable();
},
start: function(event,ui) {
gridster.disable();
}
});
*/
});