Поиск Google Внутренний поиск Библиотека бесплатного софта

Плавное исчезание и появление JQuery

Очень часто, необходимо сделать анимированное пропадание или появление какого-то объекта на веб странице. Для этого можно использовать таймеры, фильтры ie и свойство opacity в JavaScript. Весь этот трудоемкий процесс можно сократить до нескольких строчек кода JQuery.

 

Давайте рассмотрим на простом примере. Допустим мы делаем какой-то блок, который исчезает и появляется с новым текстом при нажатии на какой-то кнопке. Давайте создадим заготовку:


<div id="placeResult">Здесь будет появляться новый текст</div>

<a onclick="getNewText();" href="javascript:void(0)">Следующий текст</a>



function getNewText {
	//отключаем кеш
	$.ajaxSetup ({
		cache: false
	});

	return false;
}


Мы собираемся динамически поддгружать один и тот же скрипт на сервере, который будет возвращать разный текст. Поэтому лучше отключить встроенное кешированние, чтобы избежать непредвиденных обстоятельств.

Теперь немного теории. Исчезание и появление объектов в JQuery реализуется с помощью методов "fadeOut" и "fadeIn", которые имеют различные скоростные параметры: "slow","normal" и "fast". Также, вторым необязательным параметром будет функция, которая должна исполнится после завершения операции (эти функции работают асинхронно и передают управление следующим оператором не дождавшись своего завершения).

Итак, план действий таков:

  1. Создаем плавное исчезание текстового блока.
  2. После полного исчезания, запрашиваем данные с сервера с помощью метода get.
  3. Когда приходят данные с сервера, помещаем их в текстовый блок и плавно показываем его.

<div id="placeResult"">Здесь будет появляться новый текст</div">

<a onclick="getNewText();" href="javascript:void(0)"">Следующий текст</a">



function getNewText {
	//отключаем кеш
	$.ajaxSetup ({
		cache: false
	});

	//медленное исчезание 
	$('div#placeResult').fadeOut("slow",function () { 
		//после чего запускается эта функция

		//получаем результат работы скрипта на сервере
		$.get('/ajax/get.php', function(data) {  
			//и запускаем эту функцию

			//помещаем результат в элемент с id placeResult
			$('#placeResult').html(data);  

			//плавно показываем блок
			$('div#placeResult').fadeIn("slow"); 
		});
	});

	return false;
}


Как видите, ничего сложного в этом нет. Если хорошо почитать код, то все становиться понятным даже тому, кто не знаком с основами JQuery. А теперь выложу код функции без комментариев:

function getNewText {
	$.ajaxSetup ({
		cache: false
	});

	$('div#placeResult').fadeOut("slow",function () { 
		$.get('/ajax/get.php', function(data) {  
			$('#placeResult').html(data);  
			$('div#placeResult').fadeIn("slow"); 
		});
	});

	return false;
}


Комментарии 

 
0 #4 info@sany-okna.ru 14.05.2012 14:29
Супер! Спасибо!
Цитировать
 
 
0 #3 vakhtang_s 12.05.2012 21:15
ajax/get.php в этом файле может быть любой код или скажем просто текст который он выведет или там обязательно аджакс должен быть?
Цитировать
 
 
0 #2 mixa 17.04.2012 16:30
Цитирую джека:
и как это вставить на сайт?? :sad: ничего я не понимаю в Jquery может здесь надо сделать фаил с расширением .js и как тогда на него указать путь?

Попробуй в html вставить

//код js
Цитировать
 
 
+1 #1 джека 10.04.2012 12:29
и как это вставить на сайт?? :sad: ничего я не понимаю в Jquery может здесь надо сделать фаил с расширением .js и как тогда на него указать путь?
Цитировать