/**
* wSlide 0.1 - http://www.webinventif.fr/wslide-plugin/
* 
* Rendez vos sites glissant !
*
* Copyright (c) 2008 Julien Chauvin (webinventif.fr)
* Licensed under the Creative Commons License:
* http://creativecommons.org/licenses/by/3.0/
*
* Date: 2008-01-27
*/
(function($) { $.fn.wslide = function(h) { h = jQuery.extend({ width: 150, height: 150, pos: 1, col: 1, effect: 'swing', fade: true, horiz: false, autolink: true, duration: 1500 }, h); function gogogo(g) { g.each(function(i) { var a = $(this); var e = a.attr('id'); if (e == undefined) { e = 'wslide' + i } $(this).wrap('<div class="wslide-wrap" id="' + e + '-wrap"></div>'); a = $('#' + e + '-wrap'); var b = a.find('ul li'); var f = h.effect; if (jQuery.easing.easeInQuad == undefined && (f != 'swing' || f != 'normal')) { f = 'swing' } var g = h.width; var j = h.height; function resultante(a) { var b = a; b = b.split('px'); b = b[0]; return Number(b) } var k = g - (resultante(b.css('padding-left')) + resultante(b.css('padding-right'))); var l = j - (resultante(b.css('padding-top')) + resultante(b.css('padding-bottom'))); var m = h.col; if (h.horiz) { m = Number(b.length + 1) } var n = ''; var o = Math.ceil(Number(b.length) / m); a.css('overflow', 'hidden').css('position', 'relative').css('text-align', 'left').css('height', j + 'px').css('width', g + 'px').css('margin', '0').css('padding', '0'); a.find('ul').css('position', 'absolute').css('margin', '0').css('padding', '0').css('width', Number((m + 0) * g) + 'px').css('height', Number(o * j) + 'px'); b.css('display', 'block').css('overflow', 'hidden').css('float', 'left').css('height', l + 'px').css('width', k + 'px'); b.each(function(i) { var b = a.offset(); var c = $(this).offset(); $(this).attr('id', e + '-' + Number(i + 1)).attr('rel', Number(c.left - b.left) + ':' + Number(c.top - b.top)); n += ' <a href="#' + e + '-' + Number(i + 1) + '">' + Number(i + 1) + '</a>' }); if (typeof h.autolink == 'boolean') { if (h.autolink) { a.after('<div class="wslide-menu" style="float:right; position: relative; top: -25px; left: -45px;" id="' + e + '-menu">' + n + '</div>') } } else if (typeof h.autolink == 'string') { if ($('#' + h.autolink).length) { $('#' + h.autolink).html(n) } else { a.after('<div id="#' + h.autolink + '">' + n + '</div>') } } var p = '#' + e + '-'; var q = ""; $('a[href*="' + p + '"]').click(function() { $('a[href*="' + q + '"]').removeClass("wactive"); $(this).addClass("wactive"); var b = $(this).attr('href'); b = b.split('#'); b = '#' + b[1]; q = b; var c = $(b).attr('rel'); c = c.split(':'); var d = c[1]; d = -d; c = c[0]; c = -c; if (h.fade) { a.find('ul').animate({ opacity: 0 }, h.duration / 2, f, function() { $(this).css('top', d + 'px').css('left', c + 'px'); $(this).animate({ opacity: 1 }, h.duration / 2, f) }) } else { a.find('ul').animate({ top: d + 'px', left: c + 'px' }, h.duration, f) } return false }); if (h.pos <= 0) { h.pos = 1 } $('a[href$="' + p + h.pos + '"]').addClass("wactive"); var r = $('a[href*="' + p + '"]:eq(' + Number(h.pos - 1) + ')').attr('href'); r = r.split('#'); r = '#' + r[1]; q = r; var s = $(r).attr('rel'); s = s.split(':'); var t = s[1]; t = -t; s = s[0]; s = -s; a.find('ul').css('top', t + 'px').css('left', s + 'px') }) } gogogo(this); return this } })(jQuery);