Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2012, 13:49
Новичок на форуме
Отправить личное сообщение для bfg1114 Посмотреть профиль Найти все сообщения от bfg1114
 
Регистрация: 16.09.2012
Сообщений: 5

с помощью .animate правильно переместить объект
Здравствуйте. Только начал изучать jquery.
И такая задача:
Есть три блока, идущие один за другим: One, Two, Three.
при нажатии на блок Three блок Two должен уехать вниз за границы экрана, а блок Three встать на его место. После этого эти оставшиеся два блока должны выровняться по середине страницы.

Все это сделать более-менее получилось с помощью .animate.
Но когда два элемента начинают выравниваться по середине, то элемент Three начинает движение из первоначального своего положения. не пойму, почему так происходит.
И еще вопрос, может как-то проще (главное - понятнее) можно отцентрировать эти элементы? не прибегая к конкретным величинам

Вот мой скрипт:
$(document).ready(function moveBottom(){

    $("#three").click(function(){ 
		window_height=$(window).height();
		$("html").css('overflow-y','hidden');
		
		$("#two").css('position','relative') /* нужна для сдвига элемента зачем-то... */
				 .animate({top:window_height}, {duration:1500});
				 
		$("#three").css('position','relative')
				   .animate({right:'210px'}, {duration:3000, complete:function(){
						$("#three").animate({left:'100px'}, 1500);
						$("#one").css('position','relative')
						.animate({left:'100px'}, 1500)
						;}
				   });	
    }); 
	
});


А вот сама страничка и css: http://jsfiddle.net/ysXhD/

И еще вопрос назрел. А если мне нужно, допустим, после всего что выше сделать затухание элемента? Вот такое:

$(document).ready(function (){

    $("#three").click(function opacity (){ 
		$("#one").animate( { opacity: 0 }, 2000 ) 
			     .animate( { opacity: 1 }, 0 )   
    }); 
	
});


Наверное, можно запихать это в еще один complete:function(), но будет выглядеть громоздко.
Можно ли как-то сделать, чтобы это были 2 разные функции? но выполнялись они одна за другой лишь по одному клику мыши

Последний раз редактировалось bfg1114, 16.09.2012 в 14:00.
Ответить с цитированием
  #2 (permalink)  
Старый 17.09.2012, 17:32
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

В начале вы меняете ему свойство right а потом left, раз уж взялись за right, то его дальше и меняйте, то есть вместо
$("#three").animate({left:'100px'}, 1500);

поставите
$("#three").animate({right:'100px'}, 1500);
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
iframe как правильно динамически встаить с помощью js syegorius Events/DOM/Window 7 05.01.2012 10:24
Переместить объект FanRa3 Элементы интерфейса 7 10.08.2011 14:00
Как с помощью document.write вывести флеш объект? elmirill Общие вопросы Javascript 4 23.04.2011 15:05
Не погу передать объект в IE с помощью this kibal4iw Элементы интерфейса 2 13.07.2010 18:34