Показать сообщение отдельно
  #2 (permalink)  
Старый 05.12.2011, 03:10
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

не совсем то, но по его принципу можно сделать как угодно.
(function($){
	$.extend($.fn, {
		slideLeftShow: function(speed,callback){
			return this.animate({width: "show"}, speed, callback);
		},
		slideLeftHide: function(speed,callback){
			return this.animate({width: "hide"}, speed, callback);
		},
		slideLeftToggle: function(speed,callback){
			return this.animate({width: "toggle"}, speed, callback);
		},
		slideRightShow: function(speed,callback){
			return this.animate({width:"show"},{
				step: function(now, data){
					var w = Math.ceil(now);
					if(typeof(data.origLeft) == 'undefined'){
						var position = $(this).css('position');
						if(position=='static')
						{
							$(this).css('position','relative');
						}
						data.origPos = position;
						data.origLeft = data.end+parseInt($(this).css('left'))||0;
					}
					$(this).css({left:data.origLeft-(data.start+w)});
					if(w==data.end)$(this).css('position',data.origPos);
				},
				duration: speed,
				complete: callback
			});
		},
		slideRightHide: function(speed,callback){
			return this.animate({width:"hide"},{
				step: function(now, data){
					var w = Math.ceil(now);
					if(typeof(data.origLeft) == 'undefined')
					{
						var position = $(this).css('position');
						if(position=='static')
						{
							$(this).css('position','relative');
						}
						data.origPos = position;
						data.origLeft = parseInt($(this).css('left'))||0;
					}
					$(this).css({left:data.origLeft+(data.start-w)});
					if(w==0)$(this).css({left:data.origLeft, position:data.origPos});
				},
				duration: speed,
				complete: callback
			});
		},
		slideRightToggle: function(speed,callback){
			return this.animate({width:"toggle"},{
				step: function(now, data){
					var w = Math.ceil(now);
					if(typeof(data.origLeft) == 'undefined'){
						var position = $(this).css('position');
						if(position=='static')
						{
							$(this).css('position','relative');
						}
						data.origPos = position;
						data.origLeft = data.end+parseInt($(this).css('left'))||0;
					}
					if(data.start == 0)
					{
						if(w==data.end)$(this).css('position',data.origPos);
						$(this).css({left:data.origLeft-(data.start+w)});
					}else{
						$(this).css({left:data.origLeft+(data.start-w)});
						if(w==0)$(this).css({left:data.origLeft, position:data.origPos});
					}
				},
				duration: speed,
				complete: callback
			});
		}
	});
})(jQuery);
Ответить с цитированием