0

I'm using JavaScript & Css to try and rotate pictures. I'm also resizing the cell in the table to allow the picture to fit with its new orientation, but I cannot get the picture to sit nice in the cell, it always seems to overlap(see picture). I've been playing around with css transform-origin but I just can't find that sweet spot and I was wondering if anyone can suggest an easier way of getting this to play nice as I'm assuming different sized images will need a unique transform-origin. I'm learning JavaScript and more advanced Css as I go.

.north {
transform:rotate(0deg);
-ms-transform:rotate(0deg); /* IE 9 */
-webkit-transform:rotate(0deg); /* Safari and Chrome */
transform-origin: 50% left;
}
.west {
transform:rotate(90deg);
-ms-transform:rotate(90deg); /* IE 9 */
-webkit-transform:rotate(90deg); /* Safari and Chrome */
transform-origin: width: calc(bottom + 100px) left;
}
.south {
transform:rotate(180deg);
-ms-transform:rotate(180deg); /* IE 9 */
-webkit-transform:rotate(180deg); /* Safari and Chrome */
transform-origin: 50% left;
}
.east {
transform:rotate(270deg);
-ms-transform:rotate(270deg); /* IE 9 */
-webkit-transform:rotate(270deg); /* Safari and Chrome */
transform-origin: 50% left;
}

Here's the JScript

function rotateImage(elementID, cellID, buttonsID) {
    alert( 'Rotating' + elementID + "Resizing" + cellID);
    alert(document.getElementById(elementID).className);

    var img = document.getElementById(elementID);
    var height = img.clientHeight;
    var width = img.clientWidth;

    alert('Height = ' + height + 'width = ' +width);

    if(document.getElementById(elementID).className == "north"){
        alert('changing to west');
        document.getElementById(elementID).className = 'west';
        document.getElementById(cellID).style.height = width +30;
    }
    else if(document.getElementById(elementID).className == 'west'){
        alert('changing to south');
        document.getElementById(elementID).className = 'south';
        document.getElementById(cellID).style.height = height;
        document.getElementByID(buttonsID.className = 'editButtons');
    }
    else if(document.getElementById(elementID).className == 'south'){
        alert('changing to east');
        document.getElementById(elementID).className = 'east';
        document.getElementById(cellID).style.height = width + 30;
        document.getElementByID(buttonsID.className = 'editButtons');
    }
    else if(document.getElementById(elementID).className =='east'){
        alert('changing to north');
        document.getElementById(elementID).className = 'north';
        document.getElementById(cellID).style.height = height;
        document.getElementByID(buttonsID.className = 'editButtons');
    }
}

Example of issue

David Jack
  • 87
  • 6
  • 1
    Possible duplicate of [this question](https://stackoverflow.com/questions/16301625/rotated-elements-in-css-that-affects-their-parents-height-correctly) – wiiiiilllllll Jul 09 '18 at 10:17
  • 1
    Possible duplicate of [Rotated elements in CSS that affects their parent's height correctly](https://stackoverflow.com/questions/16301625/rotated-elements-in-css-that-affects-their-parents-height-correctly) – wiiiiilllllll Jul 09 '18 at 10:18

0 Answers0