Эй, ребята, я надеюсь, что кто-нибудь может мне помочь. Я пытаюсь создать свой первый сайт-портфолио, и созданная мной игра на соответствие памяти не работает должным образом на устройствах IOS. Я на самом деле не создавал его так, чтобы он был оптимизирован для мобильных устройств, но он работает на моем рабочем столе, и мой andriod прекрасно работает. На IOS карты вращаются, но переворачиваются неправильно. Может кто-нибудь сказать мне, что мне нужно исправить? Код ниже
HTML
<html lang="en">
<head>
<meta charset="UTF-8">
<title> Memory Game </title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<h1 selection class= "title">Philadelphia Eagles Memory Match</h1>
<section class="memory-game">
<div class="memory-card" data-framework="CarsonWentz">
<img class="front-face" src="images/cw.png"
alt="CarsonWentz"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="CarsonWentz"">
<img class="front-face" src="images/cw.png"
alt="CarsonWentz"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="CoreyClement">
<img class="front-face" src="images/cc.png"
alt="CoreyClement"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="CoreyClement">
<img class="front-face" src="images/cc.png"
alt="CoreyClement"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="NelsonAgholor">
<img class="front-face" src="images/na.png"
alt="NelsonAgholor"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="NelsonAgholor">
<img class="front-face" src="images/na.png"
alt="NelsonAgholor"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="NickFoles">
<img class="front-face" src="images/nf.png"
alt="NickFoles"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="NickFoles">
<img class="front-face" src="images/nf.png"
alt="NickFoles"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="FletcherCox">
<img class="front-face" src="images/fc.png"
alt="FletcherCox"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="FletcherCox">
<img class="front-face" src="images/fc.png"
alt="FletcherCox"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="ZachErtz">
<img class="front-face" src="images/ze.png"
alt="ZachErtz"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<div class="memory-card" data-framework="ZachErtz">
<img class="front-face" src="images/ze.png"
alt="ZachErtz"/>
<img class="back-face" src="images/eaglesfront.png"
alt="PhillyEagles"/>
</div>
<script src="scripts.js"></script>
</body>
</html>
CSS
{
padding: 0;
margin: 0;
box-sizing: border-box;
}
body {
height: 100vh;
display: flex;
background: #004C54;
}
h1 {
color: #ACC0C6;
text-align: center;
}
.memory-game {
width: 640px;
height: 640px;
margin: auto;
display: flex;
flex-wrap: wrap;
perspective: 1000px;
}
.memory-card {
width:calc(25% - 10px);
height: calc(33.333% - 10px);
margin: 5px;
position: relative;
transform: scale(1);
transform-style: preserve-3d;
transition: transform.5s;
}
.memory-card:active {
transform: scale(.97);
transition: transform .2s;
}
.memory-card.flip {
transform: rotateY(180deg);
}
.front-face,
.back-face {
width: 100%;
height: 100%;
padding: 20px;
position: absolute;
border-radius: 5px;
background: #A5ACAF;
backface-visibility: hidden;
}
.front-face {
transform: rotateY(180deg);
}
JS
const cards = document.querySelectorAll('.memory-card');
let hasFlippedCard = false;
let lockBoard = false;
let firstCard, secondCard;
function flipCard() {
if(lockBoard) return;
if (this === firstCard) return;
this.classList.add('flip');
if (!hasFlippedCard) {
//first click
hasFlippedCard = true;
firstCard = this;
} else {
//second click
hasFlippedCard = false;
secondCard = this;
checkForMatch();
}
}
function checkForMatch() {
let isMatch = firstCard.dataset.framework === secondCard.dataset.framework;
isMatch ? disableCards() : unflipCards();
}
function disableCards() {
firstCard.removeEventListener('click', flipCard);
secondCard.removeEventListener('click', flipCard);
}
function unflipCards() {
lockBoard = true;
setTimeout(() => {
firstCard.classList.remove('flip');
secondCard.classList.remove('flip');
lockBoard = false;
}, 1500);
}
function resetBoard() {
hasFlippedCard, lockBoard = [false, false];
firstCard, secondCard = [null, null];
}
(function shuffle() {
cards.forEach(card => {
let randomPos = Math.floor(Math.random() * 12);
card.style.order = randomPos;
});
})();
cards.forEach(card => card.addEventListener('click', flipCard));