У вас было неправильное представление о минусе в повороте
-90deg, -180deg, -270deg, -360deg
- это не то же самое, что 90deg, 180deg, 270deg, 360deg
в обратном направлении (это будет 0deg, -90deg, -180deg, -270deg
, то есть со смещением один)
То, что я делаю, я начинаю с нуля и перемещаюсь внутрь массива назад и вперед
rotations = ['0deg', '45deg', '90deg', '135deg', '180deg', '225deg', '270deg', '315deg']
let img = document.getElementById('img_blob');
let array_increment = 0
array_increment = 0;
$('#left').click(() => {
array_increment--
array_increment = (array_increment + rotations.length) % rotations.length
console.log(array_increment)
img.style.transform = 'rotate(' + rotations[array_increment] + ')'
})
$('#right').click(() => {
array_increment++
array_increment = (array_increment + rotations.length) % rotations.length
console.log(array_increment)
img.style.transform = 'rotate(' + rotations[array_increment] + ')'
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="left">Left</button>
<button id="right">Right</button><br>
<img id="img_blob" src="https://i.picsum.photos/id/190/300/300.jpg">