/** * jQuery SlideTo Plugin (version 1.0) * * @copyright Jesse Price * @description Animate slide scroll to effects to specific elements in the document * * @license Licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php */ // Create closure (function($) { $.fn.slideto = function(options) { var opts = $.extend({}, $.fn.slideto.defaults, options); var elem = (this.length > 0) ? this : 'a'; // Element instance specific actions $(elem).each(function() { var e = $(this); var o = $.meta ? $.extend({}, opts, e.data()) : opts; var url = $(e).attr("href"); var anchor = ''; if(url && url.indexOf("#") != -1 && url.indexOf("#") == 0) { var pieces = url.split("#",2); anchor = $("a[name='"+pieces[1]+"']"); $(this).attr('href', 'javascript:void(0);'); } else anchor = $(o.target); $(e).bind('click', function(){ $('html, body').animate({ scrollTop: anchor.offset().top, scrollLeft: anchor.offset().left }, o.speed); }); }); // Allow jQuery chaining return this; }; /** * Plugin Options * --------------------------------------------------------------------- * Overwrite the default options? Go for it! */ $.fn.slideto.defaults = { target : false, // Where to scroll? If it's false, we use the "scroll attribute" speed : 1500 // slow, medium, fast, numeric microseconds } })(jQuery);