Verschiebe den transform-Ursprung zurück zum Mittelpunkt des Elements in CSS

8

Wenn CSS-Elemente von ihrem ursprünglichen Speicherort transformiert werden, bewegt sich transform-origin nicht mit ihnen; alle nachfolgenden Transformationen und Rotationen stammen immer noch von der ursprünglichen transform-origin (Beispiel unten).

Es gibt einen Weg, den ich kenne ... und das heißt, alle neuen Transformationen rechts von den vorherigen hinzuzufügen. wie folgt: transform: translateY ( -5rem ) rotate( 45deg ) translateY( -10rem ) rotate( 15deg )... usw. Dies scheint immer die neuen Transformationen von der Mitte des aktuellen Elements wie gewünscht zu starten.

das Problem

Wenn Sie ein Element basierend auf Benutzereingaben mit dieser Technik transformieren, fügen Sie dem DOM unendlich viele Transformationen hinzu. Nimmt viel Speicher auf und verursacht andere unerwünschte Gleiteffekte (möglicherweise).

Hier ist eine Animation, die zeigt, wie sich die transform-origin nach jeder Transformation nicht in die Mitte des Elements bewegt:

%Vor% %Vor% %Vor%

die Frage

Ich muss einen Weg in CSS oder JS finden, um die Position von transform-origin zurückzusetzen oder zurück in die Mitte des transformierten Elements zu bewegen. Das Hinzufügen weiterer Transformationen nach rechts ist eine Technik, die für mich in einer interaktiven Echtzeitumgebung nicht funktioniert. Ein Versuch kann hier gesehen werden: Transformationen werden ... endlos hinzugefügt .

Wie kann ich entweder die Position eines transformierten Elements berechnen und die transform-origin zurück in ihre Mitte verschieben ODER wie kann ich mehrere Transformationswerte verwenden und sie zu einem Wert zusammenfassen, der das Element an der gleichen Stelle hält?

    
sol acyon 01.05.2017, 18:39
quelle

1 Antwort

0

Sie können auch top und left verwenden, um #v-wrp zu übersetzen. Und Sie können eine Animation in der transform-origin -Eigenschaft erstellen. Probieren Sie es im Element <b> aus. Ich hoffe, es wird jetzt funktionieren.

    
Migats21 12.12.2017 10:37
quelle