Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.12.2011, 02:11
Новичок на форуме
Отправить личное сообщение для ermax Посмотреть профиль Найти все сообщения от ermax
 
Регистрация: 21.05.2010
Сообщений: 9

TOGGLE Зеркально
Есть код
$("#linkbases").click(function() {
   $("#databases").toggle('slow');
 });


При его использовании слой (div) #databases появлятеся из точки top,left.
Мне же нужно чтоб div появлялся из точки top,right

Вопрос. Как сделать?
Перерыл куча инфы, ответа так и не нашел.
Ответить с цитированием
  #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);
Ответить с цитированием
  #3 (permalink)  
Старый 05.12.2011, 16:59
Новичок на форуме
Отправить личное сообщение для ermax Посмотреть профиль Найти все сообщения от ermax
 
Регистрация: 21.05.2010
Сообщений: 9

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

Сообщение от ermax
Спасибо. Но это совсем не то.
Ну я и написал что не совсем то, но посмотрев на код, можно понять как сделать то что нужно, тут есть появление справа, к нему просто нужно добавить появление сверху.
Ответить с цитированием
  #5 (permalink)  
Старый 06.12.2011, 02:09
Кандидат Javascript-наук
Отправить личное сообщение для MadGest Посмотреть профиль Найти все сообщения от MadGest
 
Регистрация: 12.07.2010
Сообщений: 123

Возможно что-то такое подойдет:

$("#linkbases").toggle(
   function() {
       $("#databases").animate(/*появление объекта*/)
   },
   function() {
       $("#databases").animate(/*скрытие объекта*/)
   }
);


http://api.jquery.com/toggle-event/

Последний раз редактировалось MadGest, 06.12.2011 в 02:16.
Ответить с цитированием
  #6 (permalink)  
Старый 06.12.2011, 08:59
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от MadGest
Возможно что-то такое подойдет:
Согласно этому
http://jquery-docs.ru/effects/toggle/

Метод jQuery toggle() имеет всего 2 "рабочих" аргумента:
- переключатель | скорость
- Функция, которая запускается после окончания анимационных эффектов. Выполняется единожды для каждого элемента.

Т.е. использование двух функций невозможно. А в твоём варианте тем более...
Ответить с цитированием
  #7 (permalink)  
Старый 07.12.2011, 12:32
Кандидат Javascript-наук
Отправить личное сообщение для MadGest Посмотреть профиль Найти все сообщения от MadGest
 
Регистрация: 12.07.2010
Сообщений: 123

Я имею виду event toggle, ссылка выше.
Ответить с цитированием
  #8 (permalink)  
Старый 07.12.2011, 13:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от MadGest
Я имею виду event toggle, ссылка выше.
Отстаёт русский вариант от аглицкого оригинала...
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переключение checkbox с помощью toggle Viper jQuery 1 03.09.2012 15:22
Как сделать, чтобы у toggle была ненулевая высота? student-k Общие вопросы Javascript 7 15.08.2011 23:46
toggle и вложенные элементы john-samilin jQuery 1 14.07.2011 17:48
дождаться выполнения toggle maximu$$ jQuery 7 04.05.2011 14:58
jQuery - множественный toggle K_Irka Элементы интерфейса 0 27.07.2010 20:19