Result

jQuery

$(document).ready(function() {
    $('li').click(function() {
      var c = $(this);
      var All = c.prevAll();

      if(All.length > 0) {
        var top = $(All[All.length - 1]);
        var p = $(All[0]);
        var Up = c.prop('offsetTop') - top.prop('offsetTop');
        var Down = (c.offset().top + c.outerHeight()) - (p.offset().top + p.outerHeight());

        c.css('position', 'relative');
        All.css('position', 'relative');
        c.animate({'top': -Up});
        All.animate({'top': Down}, {complete: function() {
          c.parent().prepend(c);
          c.css({'position': 'static', 'top': 0});
          All.css({'position': 'static', 'top': 0});
        }});
      }
    });
  });​

html

  • list 01
  • list 02
  • list 03
  • list 04
  • list 05

via

https://forrst.com/posts/Animated_list_item_reordering_in_jQuery-RR1