Gridster.js
A jQuery plugin that makes building intuitive draggable layouts
...Setting the maximum amount of rows only completely works if you disable shifting larger widgets down at the moment. Widgets of smaller or equal size to the dragged widget (player) will swap places with the original widget. This causes tiles to swap left and right as well as up and down. By default smaller players will shift larger widgets down. By setting shift_larger_widgets_down to false, smaller widgets will not displace larger ones.