Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 31.10.2016, 22:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Black_Star
как стартовать через setTimeout
Как совместить setTimeout и цикл for?
Ответить с цитированием
  #12 (permalink)  
Старый 31.10.2016, 23:42
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

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

window.onload = function () {

		var $elem = $('#bigBlock div');
		var len = $('#bigBlock div').length;
		var i = 0;

		
		for (i = 0; i < len; i++){
				(function(i) {

						var el = $elem[i];
						var width = el.scrollWidth,
						      height = el.scrollHeight;

						setTimeout(function() {
*!*
						  el.addClass('animated flip'); // не работает  
*/!*

								el.style.width = height+'px';
								el.style.height = width+'px';

						}, 1000*i);
				}) (i);
		}
Ответить с цитированием
  #13 (permalink)  
Старый 01.11.2016, 00:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Black_Star
не работает
что не работает?
выкиньте цикл и запускайте следущую "анимацию" по окончанию предыдущей. гуглить transitionend
Ответить с цитированием
  #14 (permalink)  
Старый 01.11.2016, 14:01
Аватар для Black_Star
Профессор
Отправить личное сообщение для Black_Star Посмотреть профиль Найти все сообщения от Black_Star
 
Регистрация: 11.07.2016
Сообщений: 300

Сообщение от рони
выкиньте цикл и запускайте следущую "анимацию" по окончанию предыдущей. гуглить transitionend
Цикл здесь очень необходим.
Я наверное как-то криво изъясняюсь. Попробую объяснить все пошагово.
1)Есть большое поле с дивами(у каждого свои размеры и каждый занимает свою позицию в пространстве + каждый див имеет класс picture1);
2)Ждем 2сек (- это время первой задержки, во время нее ничего не происходит)
3) Первому диву данного блока прискаевается классы с анимацией .toggleClass('animated flip') ( время анимации я задаю через CSS свойства, допустим 1,5сек) + класс picture1 заменяется picture2 только у этого дива
4) Первый див меняет свои размеры (высота=ширине, ширина=высоте)
5) Первый (уже измененный) див меняет свое положение в пространстве.
#bigBlock .picture2:nth-child(1) {
		top: 36%;
		left: 57%;		
}

6) С первого класса удаляются классы анимации .toggleClass('animated flip')
7) пункты 3-6 проделываются по очереди с каждым дивом до i<$('#bigBlock div').length;
8) Все дивы заняли новые позиции, и у них всех есть класс picture2 . Ждем 2сек.
9)Идет повтор от 3 - 6 для каждого дива .
10) Все дивы заняли новые позиции, и у них всех есть класс picture3 . Ждем 2сек.
11) Цикл продолжается пока не доходит picture N
12) Цикл идет с picture N в picture 1

Последний раз редактировалось Black_Star, 01.11.2016 в 14:04.
Ответить с цитированием
  #15 (permalink)  
Старый 01.11.2016, 14:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Black_Star,
пока к пост №13 добавить нечего ...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить ширину и высоту элемента див sanhai Элементы интерфейса 8 13.11.2018 18:04
Jquery - поменять местами таблицы Sergei-b84 jQuery 14 11.03.2015 20:00
Поменять местами два <div> Bay Events/DOM/Window 11 11.02.2013 22:37
Не получается поменять высоту div revvo jQuery 4 06.08.2011 13:12
Как поменять местами элементы в дереве элемента родителя? rar11 Events/DOM/Window 8 01.04.2009 18:53