Показать сообщение отдельно
  #1 (permalink)  
Старый 24.06.2019, 23:46
DVV DVV вне форума
Кандидат Javascript-наук
Отправить личное сообщение для DVV Посмотреть профиль Найти все сообщения от DVV
 
Регистрация: 26.12.2017
Сообщений: 125

Вставить таймер в нужное место
Есть скрипт. При клике по карточке она переворачивается обратной стороной. Максимум может быть перевернуто сразу 2 карточки. После того, как вторая карточка перевернулась должен запускаться таймер с установленным временем, через которое он запускает функцию возвращающую все карточки в исходное положение.
Не могу разобраться, куда вставить эту функцию с таймером. Там, где она сейчас стоит (называется start()), это неправильное место. Там она срабатывает только после клика по третьей карточке после открытия второй.
let cardItems = document.querySelectorAll('.card__item');
	let cardItemBack = document.querySelectorAll('.card__item--back');
	let cardItemFront = document.querySelectorAll('.card__item--front');
	let count = 0; // количество перевернутых карточек

	const cardsClick = () => {
		for (let i = 0, lenth = cardItems.length; i < lenth; i++) { 
			cardItems[i].addEventListener('click', () => {
				if (count < 2) {
					cardItemFront[i].style.transform = 'rotateY(180deg)';
					cardItemBack[i].style.transform = 'rotateY(360deg)';
					count += 1;
					console.log(cardItemBack[i], cardItemFront[i]);
					console.log(count);	
				} else {
					start();
				}
			});
		}
	};
	cardsClick();

	const turnBackCards = () => {
		for (let j = 0, lenth = cardItems.length; j < lenth; j++) {
			cardItemFront[j].style.transform = 'rotateY(0)';
			cardItemBack[j].style.transform = 'rotateY(180deg)';
			count = 0;
			console.log(count);
		}
	};

	const start = () => {
		window.setTimeout(turnBackCards, 500);
	}
Ответить с цитированием