jQuery.fn.gallery = function() { var obj = $(this); var imgs = obj.children('img'); var cur_pos = 0; var real_pos = 1; var total = imgs.length; var divider = " / "; var control_div = $('').prependTo(obj); control_div.hide(); var prev_div = $('').appendTo(control_div); var next_div = $('').appendTo(control_div); var count_div = $('').appendTo(control_div); obj.mouseenter(function(){ prev_div.fadeTo(0, 0.7); next_div.fadeTo(0, 0.7); count_div.fadeTo(0, 0.7); control_div.fadeIn(400); }); obj.mouseleave(function(){ control_div.fadeOut(400); }); prev_div.mouseover(function(){ prev_div.fadeTo(100, 1); }); prev_div.mouseout(function(){ prev_div.fadeTo(100, 0.7); }); next_div.mouseover(function(){ next_div.fadeTo(100, 1); }); next_div.mouseout(function(){ next_div.fadeTo(100, 0.7); }); prev_div.click(function(){ prev(); }); next_div.click(function(){ next(); }); function next() { imgs.slice(cur_pos, cur_pos + 1).hide(); cur_pos++; if (cur_pos > (total - 1)) cur_pos = 0; real_pos = cur_pos + 1; count_div.text(real_pos + divider + total); imgs.slice(cur_pos, cur_pos + 1).show(); } function prev() { imgs.slice(cur_pos, cur_pos + 1).hide(); cur_pos--; if (cur_pos < 0) cur_pos = total - 1; real_pos = cur_pos + 1; count_div.text(real_pos + divider + total); imgs.slice(cur_pos, cur_pos + 1).show(); } // init imgs.slice(cur_pos, cur_pos + 1).show(); return this.each(function(){ }); };