$(function() { var duration = 1000, wait = 500; $("div.effect") .hover(function() { $(this).addClass("hover"); }, function() { $(this).removeClass("hover"); }); var effect = function(el, n, o) { $.extend(o, { easing: "easeOutQuint" }); $(el).bind("click", function() { $(this).addClass("current") // delaying the initial animation makes sure that the queue stays in tact .delay( 10 ) .hide( n, o, duration ) .delay( wait ) .show( n, o, duration, function() { $( this ).removeClass("current"); }); }); }; $("#hide").click(function() { var el = $(this); el.addClass("current").hide(duration, function() { setTimeout(function() { el.show(duration, function() { el.removeClass("current"); }); }, wait); }); }); effect("#blindLeft", "blind", { direction: "left" }); effect("#blindUp", "blind", { direction: "up" }); effect("#blindRight", "blind", { direction: "right" }); effect("#blindDown", "blind", { direction: "down" }); effect("#bounce3times", "bounce", { times: 3 }); effect("#clipHorizontally", "clip", { direction: "horizontal" }); effect("#clipVertically", "clip", { direction: "vertical" }); effect("#dropDown", "drop", { direction: "down" }); effect("#dropUp", "drop", { direction: "up" }); effect("#dropLeft", "drop", { direction: "left" }); effect("#dropRight", "drop", { direction: "right" }); effect("#explode9", "explode", {}); effect("#explode36", "explode", { pieces: 36 }); effect("#fade", "fade", {}); effect("#fold", "fold", { size: 50 }); effect("#highlight", "highlight", {}); effect("#pulsate", "pulsate", { times: 2 }); effect("#puff", "puff", { times: 2 }); effect("#scale", "scale", {}); effect("#size", "size", {}); $("#sizeToggle").bind("click", function() { var opts = { to: { width: 300, height: 300 }}; $(this).addClass('current') .toggle("size", opts, duration) .delay(wait) .toggle("size", opts, duration, function() { $(this).removeClass("current"); }); }); $("#shake").bind("click", function() { $(this).addClass("current").effect("shake", {}, 100, function() { $(this).removeClass("current"); }); }); effect("#slideDown", "slide", { direction: "down" }); effect("#slideUp", "slide", { direction: "up" }); effect("#slideLeft", "slide", { direction: "left" }); effect("#slideRight", "slide", { direction: "right" }); $("#transfer").bind("click", function() { $(this).addClass("current").effect("transfer", { to: "div:eq(0)" }, 1000, function() { $(this).removeClass("current"); }); }); $("#addClass").click(function() { $(this).addClass(function() { window.console && console.log(arguments); return "current"; }, duration, function() { $(this).removeClass("current"); }); }); $("#removeClass").click(function() { $(this).addClass("current").removeClass(function() { window.console && console.log(arguments); return "current"; }, duration); }); $("#toggleClass").click(function() { $(this).toggleClass(function() { window.console && console.log(arguments); return "current"; }, duration); }); });