(function ($) {
$.fn.lavaLamp = function (o) {
o = $.extend({fx: 'linear', speed: 500, click: function () {}}, o || {});
return this.each(function () {
var b = $(this), noop = function () {}, $back = $('<li class="back"><div class="left"></div></li>').appendTo(b), $li = $('li', this), curr = $('li.current', this)[0] || $($li[0]).addClass('current')[0];
$li.not('.back').hover(function () {move(this);}, noop);
$(this).hover(noop, function () {move(curr);});
$li.click(function (e) {
setCurr(this);
return o.click.apply(this, [e, this]);
});
setCurr(curr);
function setCurr(a) {
$back.css({'left': a.offsetLeft + 'px', 'width': a.offsetWidth + 'px'});
curr = a;
};
function move(a) {$back.each(function () {$.dequeue(this, 'fx');}).animate({width: a.offsetWidth, left: a.offsetLeft}, o.speed, o.fx);}
});
};
})(jQuery);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости