Вы вызываете оба изменения CSS вместе в одной функции (а), и эта функция запускается каждую секунду. Так и происходит, но очень быстро друг за другом.
То, что вы можете сделать в этом очень простом случае, выглядит примерно так:
function first() {
const degs = ['rotate(50deg)', 'rotate(90deg)'];
setInterval(() => {
document.getElementsByClassName('a')[0].style.transform = degs[0];
degs.reverse();
}, 1000);
}
window.addEventListener('load', first);
Это работает, но ... Я бы использовал CSS анимации здесь. Было бы что-то вроде этого, и это даст приятное прикосновение смузи:
<style>
.a {
width: 500px;
height: 300px;
/* border: 1px solid red; */
background-color: #666;
animation: exampleAnimation 2s infinite;
}
@keyframes exampleAnimation {
0% {
transform: rotate(50deg);
}
50% {
transform: rotate(90deg);
}
100% {
transform: rotate(50deg);
}
}
</style>
Подробнее о CSS анимациях можно прочитать здесь:
https://developer.mozilla.org/en-US/docs/Web/CSS/animation