По сути, ваш код переопределяет DOMElement.style.cssText
внутри каждого оператора if.
Так что давайте скажем первый и третий оператор if, если они истинны;В этом случае преобразование будет установлено на CSSProperties + `rotateY(${xFormula}deg);`
, только чтобы немедленно установить на `rotateX(${yFormula}deg);`
, переопределяя предыдущее.Из-за порядка ваших операторов if, в которых вертикальный расчет идет после горизонтального, свойство вертикального преобразования (rotateX) будет переопределять горизонтальное (rotateY).
Вместо этого вы можете добавить к концу CSSProperties
, так что оба преобразования будут добавлены.Тогда все, что вам нужно сделать, это установить DOMElement.style.cssText
в CSSProperties
, который содержит оба ваших преобразования.
var CSSProperties =
`
transition-duration: 250ms;
transition-timing-function: linear;
transition-delay: 0;
transition-property: unset;
transform:
`;
if (xPosition > xDivided) {
CSSProperties += `rotateY(${xFormula}deg)`;
}
if (xPosition < xDivided) {
CSSProperties += `rotateY(${xFormula}deg)`;
}
if (yPosition < yDivided) {
CSSProperties += `rotateX(${yFormula}deg)`;
}
if (yPosition > yDivided) {
CSSProperties += `rotateX(${yFormula}deg)`;
}
DOMElement.style.cssText = CSSProperties + ';';