Ich habe ein Objekt, das von jeder seiner 4 Seiten sowie einer seiner 4 Ecken geändert werden kann.Wie kann ich die obere linke Position nach der Größenänderung eines gedrehten Objekts aktualisieren?
Jetzt versuche ich, es drehbar zu machen, und das mache ich mit der CSS-Eigenschaft translate: rotate(angle)
, wobei der Anker das Zentrum des Objekts ist.
Das Objekt hat die Eigenschaften oben, links, Breite, Höhe und Winkel.
Das Problem ist, dass wenn es einmal gedreht wird, wenn ich es von der unteren rechten Ecke zum Beispiel Größe ändern muss, behält es nicht seine Position oben links, während immer noch den zentralen Ankerpunkt.
Ich muss einen Weg finden, um die Position oben links zu erhalten, indem ich sie aktualisiere, wahrscheinlich mit einer Trigonometrie.
document.getElementById("button").addEventListener("click", function() {
var obj = document.getElementById("object");
console.log(obj.style.top, obj.style.left); // 100, 100
obj.style.width = "200px";
obj.style.height = "200px";
// Something needs to be done here to update the top left position and keep it in place
});
div {
position: absolute;
top: 100px;
left: 100px;
width: 50px;
height: 50px;
background: red;
transform-origin: 50% 50%;
transform: rotate(20deg);
}
<div id="object"></div>
<button id="button">Resize bottom-right corner</button>
Ich habe eine Geige here
Ich würde mehr über das Ding besorgt sein, das erscheint, nachdem ich den Knopf geklickt habe. –
Das ist nur ein Beispielcode, um das Problem zu demonstrieren. Der eigentliche Code ist in React geschrieben und es gibt zu viel Abhängigkeit, um es hier zu setzen. –