/*! jCarousel - v0.3.0-rc.1 - 2013-11-13 * http://sorgalla.com/jcarousel * Copyright (c) 2013 Jan Sorgalla; Licensed MIT */ (function($) { 'use strict'; $.jcarousel.fn.scrollIntoView = function(target, animate, callback) { var parsed = $.jCarousel.parseTarget(target), first = this.index(this._fullyvisible.first()), last = this.index(this._fullyvisible.last()), index; if (parsed.relative) { index = parsed.target < 0 ? Math.max(0, first + parsed.target) : last + parsed.target; } else { index = typeof parsed.target !== 'object' ? parsed.target : this.index(parsed.target); } if (index < first) { return this.scroll(index, animate, callback); } if (index >= first && index <= last) { if ($.isFunction(callback)) { callback.call(this, false); } return this; } var items = this.items(), clip = this.clipping(), lrb = this.vertical ? 'bottom' : (this.rtl ? 'left' : 'right'), wh = 0, curr; while (true) { curr = items.eq(index); if (curr.length === 0) { break; } wh += this.dimension(curr); if (wh >= clip) { var margin = parseFloat(curr.css('margin-' + lrb)) || 0; if ((wh - margin) !== clip) { index++; } break; } if (index <= 0) { break; } index--; } return this.scroll(index, animate, callback); }; }(jQuery));